HERE Technologies and AWS: Accelerating NDS.Live with agentic AI

Post Syndicated from Aleksandar Matic original https://aws.amazon.com/blogs/devops/here-technologies-and-aws-accelerating-nds-live-with-agentic-ai/

NDS.Live development at HERE Technologies demands that dozens of interdependent schema definitions stay consistent with every customer requirement, and agentic AI is how we’re meeting that challenge. HERE’s mission is to deliver a unified map for our automotive customers, and central to this mission is the Navigation Data Standard (NDS). NDS is the global industry standard for map data formats. Major manufacturers like BMW and Volkswagen use it so that navigation, Advanced Driver Assistance Systems (ADAS), and automated driving systems speak the same language.

While NDS Classic focused on batch delivery for offline storage, the industry has shifted toward NDS.Live, a streaming-first standard. With NDS.Live, vehicles can pull high-definition map updates in real time through APIs. This transition significantly increases the burden on our Software Development Life Cycle (SDLC). Our map data delivery teams must now manage dozens of interdependent schema definitions. Teams must translate every customer requirement into precise engineering tasks with 100 percent architectural consistency.

Adding to the challenge, the automotive industry demands rigorous process compliance. Automotive SPICE (ASPICE), the process assessment model used across the industry, requires bidirectional traceability between system requirements, software requirements, and implementation artifacts. When teams create ticket hierarchies manually and inconsistently, demonstrating this traceability during audits becomes costly and labor-intensive. That effort diverts engineering time from product delivery.

Currently, product requirements arrive as high-level feature descriptions. Manually decomposing these into a structured Jira hierarchy is time-consuming and inconsistent across teams. That hierarchy runs from Product Requirement to Epic to Story to Task. Critical domain knowledge is often fragmented across repositories or stored only in the minds of senior architects. Specifically, the relationship between HERE’s internal source data models and the output NDS.Live schemas lacks a single source of truth. This context switching leads to structural errors in tickets, creating a quality bottleneck right before release.

The solution: An orchestrated multi-agent approach with Kiro

To address this, we’re proving the viability of an orchestrated, multi-agent approach built on Kiro. Kiro is a software engineering agent from AWS, available as an IDE, CLI, or web agent. Using Kiro, you can formalize technical requirements and system designs before any code is generated, using its spec-driven development model.

Why orchestration?

Rather than using a single, general-purpose AI assistant, we chose an orchestration model that mimics a high-performing engineering team. In complex systems, a single agent can suffer from context window saturation, where too much information leads to hallucinations or missed details. We use a Kiro workflow that routes specialized work to purpose-built step agents. Each step runs with exactly the context it needs, and the workflow sequences and parallelizes them rather than relying on one general-purpose agent to coordinate every sub-step. Each step agent is dedicated to one role. Six persona agents analyze each requirement in parallel: an Architect, a Product Owner, a Tech Lead, a Developer, a Quality Assurance (QA) Engineer, and a Data Modeler. Specialist agents then handle each ticket type.

Using Kiro powers

The core of this system is the Kiro power, a packaged capability that follows the open Agent Plugins format. Agent Plugins is a vendor-neutral specification, so powers built for Kiro also work across other compatible agent clients. With a Kiro power, you can give the AI agent instant expertise in a specific domain by bundling several elements:

  1. Agent Skills: Task-specific instructions, scripts, and reference material that define conventions and guidelines, such as coding standards or architectural constraints. Skills load on demand, so the agent sees only the skill name and its activation trigger until a task needs it.
  2. Model Context Protocol (MCP) servers: Connecting the agent to live data, such as Jira or HERE’s internal technical schema servers.

Automation with Kiro CLI

Developers work inside the Kiro IDE while writing code. This initiative needed automation that runs without a developer present, so we used the Kiro Command Line Interface (Kiro CLI). By using the CLI, we can integrate the agentic workflow directly into our continuous integration and continuous delivery (CI/CD) pipelines. A system event, like a Jira webhook, can automatically trigger the transition from a product requirement to a structured Jira backlog. No developer needs to manually coordinate every sub-step.

Multi-source context injection

We ground our agents in our specific domain using multiple methods:

  • Internal MCP servers: These connect Kiro to live internal knowledge graphs, allowing agents to verify if the source data actually exists before committing to a design in NDS.Live. Additionally, they support alignment with internal architecture and system non-functional requirements.
  • Kiro CLI knowledge indexing: This provides the agent with on-demand, token-efficient access to the thousands of pages of NDS.Live documentation.
  • Code Intelligence: The built-in code understanding layer in Kiro indexes our repositories, supporting natural-language queries against the actual source code during ticket creation.

Persistent wiki memory

A significant challenge in agentic workflows is context loss between sessions. When a developer returns to a task days later, the AI assistant starts from scratch. It must re-learn project nuances, user preferences, and prior decisions. We addressed this by implementing a three-layer memory system inspired by cognitive science:

  1. Semantic memory: Stored facts about the domain, including entity definitions, component relationships, and user preferences. The system remembers which Jira fields map to which schema concepts. It also remembers working preferences, such as a developer’s preferred diagram format for architecture documentation.
  2. Episodic memory: Records of past sessions, capturing decisions, discoveries, and open items. When a new ticket references a component discussed three weeks ago, the agent recalls the architectural context from that earlier interaction without the developer repeating it.
  3. Procedural memory: Learned workflows and task instructions that improve with each execution. When the agent encounters a pattern it has successfully executed before (such as evaluating a milestone against its test plan), it replays that procedure with increasing confidence.

This memory lifecycle is fully automated through Kiro hooks. A record-episode hook fires at the end of each meaningful session and distills the interaction into structured knowledge. A recall-memory hook loads relevant prior context at the start of every new interaction. The result: the AI agent compounds expertise over time, much like a new team member who gets better with each sprint.

Code Intelligence for architecture-aware tickets

Beyond documentation, our agents need to understand the actual implementation. Using the Code Intelligence feature in Kiro, we clone any relevant repository, index its source code, and make it queryable in natural language. Consider a task to “add error handling to the registry service.” The system does not guess at the current patterns. Instead, it queries the indexed code base: “What error handling patterns does this service currently use?” It then writes acceptance criteria that align with the real architecture.

This bridging of documentation and source code is critical. Tickets grounded in actual code patterns are accepted by developers with fewer revision cycles. The AI’s recommendations match existing code base conventions rather than imposing generic best practices.

Concrete outcomes and impact

By moving from manual decomposition to AI orchestration, we have transformed our ticket creation process. In our internal use to date, work that previously took hours or days of manual decomposition is completed in minutes.

The following diagram illustrates a typical output from the orchestrated workflow. A single high-level product requirement is automatically decomposed into a fully linked hierarchy. Each level inherits architectural context from the one above. Every ticket arrives with precise acceptance criteria grounded in the NDS.Live schema and verified against the source data model.

AI-generated Jira ticket hierarchy showing a product requirement decomposed into epics, stories, and a task, linked by dependency arrows

Figure 1: AI-generated Jira ticket hierarchy. Blue indicates the product requirement, amber indicates epics, green indicates stories, and pink indicates the task. Dashed arrows show the epic-level dependency chain

Key observations from this example: (1) Each ticket inherits the speed-limit label and architecture context from its parent. (2) Source data availability is verified at the Epic level. (3) Stories referencing implementation details are enriched through Code Intelligence queries against the actual repository. (4) QA stories are cross-referenced with the team’s test plan. In our runs, this consistency is produced in minutes rather than the days the manual process required.

Key results

Since adopting the orchestrated workflow, we have seen changes across five areas:

  • Efficiency gains: Based on our initial internal measurements, we expect to decrease the investigation phase for new implementation tasks by more than 50 percent. This is a vital step toward HERE’s company-level goal to reduce developer toil.
  • Born correct workflows: Every ticket is structurally sound, consistently named, and properly linked from the moment of creation. This significantly eases the backlog refinement process.
  • Support for ASPICE traceability: The orchestrated workflow enforces parent-child linking and consistent labeling from the moment of creation. The resulting ticket hierarchy can help support ASPICE bidirectional traceability efforts, with linked artifacts produced as work is created rather than reconstructed before an audit. Adopting the workflow doesn’t replace a formal process assessment. Each organization remains responsible for validating outcomes against its own ASPICE assessment, and we recommend confirming the approach with your compliance team.
  • Architecture-aware scoping: Before any tickets are generated, the system automatically assesses the architectural impact of a feature, identifying which components, services, and teams are affected. This early architecture consultation surfaces the true complexity and scope of a requirement upfront. It prevents the costly mid-sprint discovery that a seemingly minor feature actually touches five services across three teams.
  • Knowledge persistence: The domain expertise of our senior architects is captured within the Kiro knowledge base and the wiki memory system. Project context persists and compounds, even as team members shift between tasks.

Together, HERE Technologies and AWS are demonstrating how agentic AI can turn a fragile, manual workflow into a consistent, knowledge-rich, and largely automated process. With this system, our engineers can focus on what they do best: building the future of location technology. To explore the capabilities behind this work, you can review the Kiro documentation at kiro.dev, which cover powers, steering files, hooks, and the Kiro CLI.

Lessons learned: Building an evolving agentic architecture

Building an agentic system that our teams depend on daily isn’t a one-shot effort. Our architecture has gone through several iterations, and we want to share what worked and what surprised us.

Progressive disclosure over always-on context

Our first iteration loaded all domain knowledge into every agent interaction: field definitions, workflow rules, portfolio structure. This worked for demos but degraded quality at scale, because the model had too much context irrelevant to the current task. We moved to a skills model where domain-specific instruction sets are loaded on demand, only when the task requires them. The agent sees only the skill name and a one-sentence activation trigger at startup. The full body is injected when needed. This reduced our always-on token cost significantly without losing any capability.

Confirmation gates prevent costly mistakes

In an automated ticket creation workflow, a single hallucinated field value can create dozens of incorrectly tagged tickets. We introduced explicit confirmation gates at three decision points. The first reviews the analysis before any ticket is written. The second selects the responsible team, which derives the reporter and assignee. The third approves the Story and Task plan before those tickets are generated. Each gate presents a summary with Approve, Modify, or Cancel options. This added seconds to the workflow but eliminated the undo 15 tickets scenario entirely.

Memory must be structured to be useful

Early attempts at session memory were simple: dump a summary at the end of each session. The recall side was the problem. Without structure, the agent could not efficiently retrieve what it needed. Organizing memory into three typed layers (semantic, episodic, procedural) with structured frontmatter and a lightweight index made retrieval fast and precise. In our testing, the system recalls relevant context in under a second, even with hundreds of stored pages.

Code Intelligence fills the “how is this actually built?” gap

Documentation tells you what should exist. Code tells you what does exist. We found that tickets written purely from documentation were often rejected during refinement because they assumed patterns that didn’t match the implementation. Adding Code Intelligence, the ability to clone a repo, index it, and query it in natural language, closed this gap. The agent now checks how the service is actually built before writing acceptance criteria, and the resulting tickets align with developer expectations.

Spec-driven development for the agents themselves

We used the spec-driven workflow in Kiro to design and implement improvements to the agentic system. Requirements were formalized with correctness properties, designs were reviewed against those properties, and implementation tasks were generated with traceability back to specific requirements. This recursive use, the tool improving itself through its own methodology, gave us high confidence that changes did not regress existing behavior.

Conclusion

HERE Technologies turned a fragile, manual workflow into a consistent and largely automated one. Kiro powers, headless automation through the Kiro CLI, a three-layer memory system, and Code Intelligence work together in this approach. NDS.Live requirements now arrive as linked Jira hierarchies, with traceability captured as the work is created.

Several lessons from this journey can guide other organizations. Load domain knowledge on demand rather than always-on. Place confirmation gates at the decision points that matter most. Structure agent memory so the agent can recall it precisely. Ground your agents in source code, not documentation alone. Above all, start with one well-defined workflow and let the system compound expertise over time.


About the authors

Aleksandar Matic

Aleksandar Matic

Aleksandar Matic is a Senior Engineering Manager at HERE Technologies, where he leads the development of NDS.Live. With a background in software engineering, he is passionate about building high-performing engineering teams and delivering scalable, resilient software systems. His interests include engineering leadership, software design, and system architecture, with a focus on applying modern engineering practices to solve complex technical challenges.

Marcio da Ros Gomes

Marcio da Ros Gomes

Marcio is a Global Solutions Architect at Amazon Web Services. With more than 20 years in IT, Marcio helps global customers in the automotive and manufacturing sector design and build highly scalable, flexible, and resilient cloud architectures following AWS best practices. Outside of work, Marcio enjoys spending time with family and friends, cooking, and training Brazilian Jiu Jitsu.

Satoshi Kimura

Satoshi Kimura

Satoshi is a Technical Account Manager at AWS working within AWS automotive team. He helps customers operate their platform resiliently and cost efficiently on AWS.

[$] Development statistics for the 7.3 kernel

Post Syndicated from corbet original https://lwn.net/Articles/1100241/

Linus Torvalds released
the 7.3 kernel, at the end of the usual nine-week development cycle, on
October 18. This cycle, abundantly fueled by LLM-assisted
contributions, broke just about every record imaginable. As usual, we have
compiled some statistics showing how this release, which is expected to be
the next long-term-support (LTS) kernel, came together. Also included is
an attempt to determine whether automated patch review is actually reducing
the number of bugs introduced into the kernel.

AWS Weekly Roundup: AWS Lambda Web Functions, Amazon S3 on the Vercel Marketplace, and more (October 19, 2026)

Post Syndicated from Daniel Abib original https://aws.amazon.com/blogs/aws/aws-weekly-roundup-aws-lambda-web-functions-amazon-s3-on-the-vercel-marketplace-and-more-october-19-2026/

Nothing last week added a new kind of compute. What it did instead was shorten the distance between the code you already have and that code being live. AWS Lambda learned to run a plain HTTP server with no adapter in front of it, and Amazon S3 became something you can provision from inside the tool you were already using, without opening the AWS Management Console. Different services, same direction.

The counterweight arrived on Thursday. As it gets easier to put things into production, it matters more that you can say what those things are allowed to do, and this week’s most interesting read is about exactly that. Now, let’s get into this week’s AWS news…

Headlines

AWS Lambda Web Functions is a new form factor that runs a standard HTTP web application on Lambda without rewriting it into an event handler. You take a port-listening server built with Express, Hono, Fastify, or Next.js, run aws lambda-web deploy, and get back a live HTTPS URL in under a minute. No adapters, no infrastructure to set up first, no framework lock-in. Lambda now has three form factors on the same Firecracker isolation, which compose inside one application: Event Functions (the model you already know) for async work, Web Functions for the user-facing layer, and MicroVMs for stateful sandboxes running untrusted code.

Two details make this more than repackaging. Each execution environment handles up to 128 concurrent requests, so a burst of traffic shares warm environments instead of mapping one request to one environment, and billing meters the CPU time your code actually uses rather than wall-clock time. For server-side rendering, API backends, and inference endpoints streaming tokens, where most of the elapsed time is spent waiting, that changes the arithmetic. Adding --regions to the same deploy command replicates your code and configures latency-based routing behind a single global URL, and you can split traffic across revisions by weight for a canary rollout. It’s available in five Regions, running Node.js 24 on Arm64 with VPC connectivity. The AWS Compute Blog has a longer walkthrough, and Amazon CloudFront can now use a Web Function endpoint as an origin with origin access control.

The week’s other headline isn’t a launch. Trust in Depth: giving agents more autonomy without losing control makes an argument I keep running into in practice: putting a person in the loop for every agent action works at small scale and then quietly stops working, because people asked to check everything stop catching what matters. The alternative is four questions answered at four moments, which AWS calls scope, know, bound, and observe. The part worth sitting with is that an agent’s limits belong outside its own reasoning, in Amazon Bedrock AgentCore policies enforced at the gateway, because an agent cannot turn off a control it does not run. AWS has run automated reasoning in production for more than a decade, including AWS Identity and Access Management at more than 2.1 billion requests per second, and the case here is for pointing it at the rules you write for agents.

Last week’s launches

Here are some launches and updates from this past week that caught my attention:

  • Amazon S3 is now available on the Vercel Marketplace and v0 by Vercel – You can now provision S3 general purpose buckets, S3 Tables, and S3 Vectors from the Vercel dashboard, or by describing what you want to build in v0. It joins existing integrations for Amazon Aurora, Amazon DynamoDB, and Amazon OpenSearch Serverless, so the whole stack sits in one AWS account with one bill. The authentication detail is the good part: a short-lived OIDC token is exchanged at runtime with AWS Security Token Service for credentials scoped to that resource, so no static keys are stored anywhere.
  • Amazon EC2 T8i instances are now available in South America (São Paulo) – The newest burstable generation reached the São Paulo Region, which matters for the unglamorous half of a workload: login gateways, small databases, CI/CD runners, low-traffic sites. Amazon EC2 T8i delivers up to 30 percent better price performance than T3, with up to 70 percent higher compute performance and 2.4 times the Amazon EBS bandwidth. It keeps the same CPU credit system as T3, so moving over is a size change rather than a redesign, and t8i.micro and t8i.small are available under the AWS Free Tier.
  • Reflection Beam, an open-weight model for agentic coding, is now on AWS – You can now deploy Beam, Reflection AI’s open-weight model for agentic coding and long-horizon tasks, from Amazon SageMaker JumpStart. It’s a sparse mixture-of-experts model with 501 billion total and 23 billion active parameters, released on Hugging Face under Apache 2.0, and Reflection reports an effective context length of 1 million tokens. Start with a JumpStart real-time endpoint, or use SageMaker HyperPod Inference with SGLang or vLLM when you need Kubernetes-native control. It was also ported and optimized for AWS Trainium3, and launches in N. Virginia and Ohio.
  • AWS Lambda Durable Execution SDK for Go is now generally available – You can now write multi-step Go workflows that checkpoint their own progress and pause for up to a year while waiting on an external event, without building progress tracking yourself. That covers deployment rollouts with approval gates and pipelines that call a model and then stop for human review. It behaves like ordinary Go tooling: go get to add it, deploy a single static binary on the provided.al2023 runtime, and test a full workflow locally with the durabletest package, no network access or credentials required.
  • Amazon CloudWatch announces log routing and chained log parsers – You can now define routes in an Amazon CloudWatch pipeline that send each event to a different log group based on conditions evaluated against processed fields, so severity, source, or event type can each land somewhere with its own retention and access controls. Chained parsers handle the other half: parsers run in sequence, with later ones consuming fields that earlier ones produced, so you can parse a JSON envelope first and then run a Grok parser over a field it extracted.

For a full list of AWS announcements, be sure to keep an eye on the What’s New with AWS page.

Other AWS news

Here are some additional posts and resources that you might find interesting:

Upcoming AWS events

Check your calendar and sign up for upcoming AWS events:

  • AWS re:Invent – re:Invent returns to Las Vegas from November 30 to December 4, with more than 2,200 sessions. The event catalog is live and reserved seating is open, so register and claim your spots before they fill up.
  • AWS Community Days – Community-led conferences planned and delivered by community leaders. Here in Brazil, the 2026 season closes with AWS Community Day Brasil Norte in Belém on October 31, the final stop in a year that covered every region of the country for the first time.

Join the AWS Builder Center to connect with builders, share solutions, and access content that supports your development. Browse here for upcoming AWS-led in-person and virtual events and developer-focused events.

That’s all for this week. Check back next Monday for another Weekly Roundup!

— Daniel Abib

This post is part of our Weekly Roundup series. Check back each week for a quick roundup of interesting news and announcements from AWS!

[$] Cross-crate forward declarations in Rust

Post Syndicated from daroc original https://lwn.net/Articles/1099596/

Rust has several ad-hoc mechanisms to allow user code to influence how the
standard library executes. For example, custom panic handlers and custom
allocators both involve registering functions that core standard library code
needs to call. With more similar features planned,
Jana Dönszelmann spotted the developing pattern and put together a
general solution, introducing a safer, checked analogue of C’s weak symbol
linking. At Kangrejos 2026, she explained how this new language feature works,
and proposed using it to clean up the kernel’s handling of integer overflows in
Rust code.

Security updates for Monday

Post Syndicated from jzb original https://lwn.net/Articles/1101421/

Security updates have been issued by AlmaLinux (idm:DL1, kernel, libsoup, perl-URI, python3.14-urllib3, and webkit2gtk3), Debian (apache2, cifs-utils, haproxy, jq, kernel, and xen), Fedora (aom, chezmoi, chromium, docker-buildx, freeipa, freerdp, GitPython, httpd, jfrog-cli, kernel, knot, libheif, log4net, mongo-c-driver, nant, NetworkManager, openssl, plasma-nm, python-cairosvg, python-django5, python-django6, qt5-qtbase, radicale, rust-faster-hex, rust-onefetch, SDL3_image, syncthing, thunderbird, tor, webkitgtk, and wordpress), Mageia (curl, libreoffice, mozjs140, mutt, nodejs-braces, parted, perl-Net-Whois-Raw, perl-XS-Parse-Keyword, and python-django), Oracle (kernel, kernel-uek, python36:3.6, and wireshark), Red Hat (gvfs, kernel, and kernel-rt), Slackware (libXtst), and SUSE (agama, ansible-core, bcel, bind, buildah, busybox, cadvisor, chromium, cosign, cups-filters, distribution-registry, fetchmail, gcc13, ghostscript, gimp, glib2, go1.26, go1.27, golang-github-lusitaniae-apache_exporter, golang-github-prometheus-alertmanager, google-osconfig-agent, grype-db, hauler, hawk2, helm, ImageMagick, iperf, kernel, libheif, libpng16, librsvg, libsoup, libsoup2, libthrift-0_25_0, libx11, libxi, libxpm, mutt, ntfs-3g_ntfsprogs, nvidia-open-driver-g07-signed, nvidia-open-driver-G07-signed-check, openssl-3, openvpn, p11-kit, pacemaker, perl-xs-parse-keyword, pgvector, php8, podman, psqlodbc, python-anyio, python-hpack, python-jwcrypto, python-oauthlib, python-pyjwt, python-tornado6, python-urllib3, python-virtualenv, python313-ruff, python313-social-auth-app-django, python313-urllib3, python313-urllib3_1, python313-validators, python313-waitress, python313-zipp, qemu, qsnapper, squid, strongswan, stunnel, swtpm, unbound, virtiofsd, webkit2gtk3, xen, and xwayland).

Beyond the patch: Protecting your NetScaler gateway against future vulnerabilities

Post Syndicated from Grant Bourzikas original https://blog.cloudflare.com/protect-your-netscaler-gateway/

The recent disclosure of a major vulnerability in Citrix NetScaler pointed to a widespread weak point: a login page is an attack surface that can be used to compromise and access an application server. Indeed, the disclosures included an actively exploited flaw that allowed attackers to execute commands on affected gateways without signing in. As with any emergency patch, admins had to weigh cutting off or disrupting their users’ access with the risk of delaying a critical security update.

If you’re a NetScaler customer and you haven’t patched your instance, stop reading and go do that. This was a bad one. Once you’ve finished the patch, we’ll explore how to avoid a future fire drill by laying additional security controls.

This issue extends beyond NetScaler and can be applied to any internal application available on the Internet. Remote desktop portals, administrative consoles, and other publicly accessible authentication pages all deserve the same scrutiny: Does the intended audience require unrestricted Internet reachability? And can an attacker bypass this authentication check to reach the application's server?

Citrix released software updates to address the flaw, and Cloudflare followed with an emergency web application firewall (WAF) rule on October 1. But having a patch available does not guarantee safety: every instance has to be identified, updated, and tested. Applying updates across a production deployment is painful — it can result in downtime or cause disruptions to employees who still need their desktops throughout that process. Customers, patients, and others dependent on users of a remote desktop definitely don’t care about your security patch.

Using a web application firewall (WAF) can buy some additional time before a patch can be fully rolled out, but it’s reactive and does not account for the next exploit that’s discovered. Cloudflare and other security vendors do their best to cover variations and similar attacks. But AI is hastening how rapidly attackers can discover new and novel variants. That’s why it is crucial to build defense in depth, to ensure that no specific software failure or exploit will lead to a critical security issue.

Cloudflare combines access policies, web application security, and restricted origin connections to protect the authentication service before a new vulnerability is disclosed. Access controls limit who can reach the application server; WAF inspection evaluates web requests for attacks; origin restrictions prevent direct connections from bypassing those defenses. These reduce exposure without waiting for a new exploit signature or replacing the existing desktop platform.

The NetScaler exploit

Citrix's September 27, 2026 bulletin reported observed exploitation of CVE-2026-88771 and CVE-2026-88772. The first allows unauthenticated command execution on affected appliances, including in their default configuration. The second affects configurations using Datagram Transport Layer Security, or DTLS. Further advisories on October 3 and October 8 addressed additional vulnerabilities in SAML configurations. These exploits allowed attackers to execute arbitrary scripts on target machines and also execute denial of service attacks.

CISA's alert and Mandiant's technical investigation cover the vulnerabilities, observed exploitation, and response guidance in more detail. For details of the available web application protection, see Cloudflare's emergency WAF release for CVE-2026-88771.

In a typical Citrix deployment, the user authenticates through NetScaler Gateway, which then uses a secure ticket authority to pass through to the StoreFront, which presents the applications and desktops available to that user. The native-installed Citrix app then uses that information to establish a separate connection using Citrix's Independent Computing Architecture (ICA) protocol. The gateway validates the ticket before proxying the desktop connection. Citrix documents these as distinct stages of the connection workflow. The entire exploit stems from the fact that the Gateway has to be publicly accessible on the Internet, otherwise users would not be able to initiate their desktop connection.

Put the access decision in front of the authentication server

The best thing that you can do, after patching all your instances, is move any publicly accessible login pages or applications behind single sign-on before the request ever hits the target server. Cloudflare Access can enforce an independent access policy before the request reaches the existing gateway server. The Citrix environment continues to determine which desktop the user may launch and to validate the resulting session ticket. The additional boundary ensures that an attacker could never get to the Gateway server to try running specific exploits. They would only see the Cloudflare Access login page.

That decision no longer depends on recognizing an exploit signature and blocking that way, but rather on a set of Zero Trust policies that determine if someone should even be there to begin with. More attacks like this are coming, and adopting Zero Trust controls throughout your network is the single most important thing you should do next.

This follows the principle described in Cloudflare's own architecture as customer zero: reduce exposure and use independent defenses so that one flaw does not become a compromise. Here, the practical starting point is the service that users reach before they enter their applications.

Protecting the web authentication path adds a boundary in front of the existing Citrix controls. It does not automatically extend that boundary to other gateway services, including DTLS-enabled listeners. Those interfaces still need their own exposure review and applicable security updates, even when the desktop sessions they support already require authentication.

The origin connection must enforce the same boundary

Changing a DNS record and enforcing Access policies are not enough. If an attacker can connect to the original address or an alternate hostname, they can avoid the controls placed in front of it. Access enforces a specific hostname: if the authentication server can be reached via an IP address or alternative hostname, then the Access policy enforcement is worthless. It’s important to take steps to ensure that all traffic comes from a request that was validated by Access. There are a few different approaches to accomplish this, based on your internal architecture.

Cloudflare Tunnel is the most commonly used approach. It establishes an outbound only tunnel from your application server and allows you to close all inbound IP traffic. This means that you won’t have a public IP for the server that can be reached by anyone.

When a public origin IP Address must remain or connector software cannot be run, network restrictions and origin authentication need to constrain the connections it accepts. For example, Dedicated CDN Egress IPs give an account dedicated source addresses for traffic from Cloudflare to its origins. The application server’s firewall can allow those addresses and reject other sources. This makes the network restriction specific to the account's traffic, rather than broadly allowing traffic from Cloudflare's shared address ranges.

Authenticated Origin Pulls can add further depth with mutual TLS to verify the Cloudflare-to-origin connection.

An origin that supports it can also validate the Access JSON Web Token, including its signature, issuer, expiry, and intended application audience. This is the best way to guarantee that a request was authenticated by Access.

If you're unsure where to start, speak with a Cloudflare expert to review your architecture and identify which controls fit your environment.

Protect the web-facing authentication service

Cloudflare Access determines who may reach the web application; Cloudflare's web application firewall (WAF) inspects HTTP requests to that same protected service. The WAF runs before any Access authentication checks, which gives you the ability to completely block known malicious IPs, specific countries, ASNs, or other attributes you know definitely shouldn’t be accessing your applications. The firewall runs continuously on all requests and will also identify users who managed to authenticate attempting to run exploits with known CVE signatures.

Alongside managed CVE signatures, WAF Attack Score uses machine learning to identify potentially malicious requests that do not exactly match a known rule. Administrators can use the score in rules that block or challenge requests. The WAF attack score is powered by network observations from Cloudflare's global network traffic and Cloudforce One investigations feed Cloudflare's shared threat-intelligence platform.

Customers with a Cloudforce One threat intelligence subscription can also use live threat indicators in WAF policies. That adds context about known malicious sources alongside inspection of the request itself.

Reducing exposure does not remove an attacker who already has a foothold. Seriously: go patch your system if you haven’t, and follow Citrix's suspected-compromise guidance. They lay out how to preserve evidence, revoke credentials and certificates, investigate connected systems, and rebuild or restore from a known-good state.

Extend Zero Trust to desktop access, or remove the desktop dependency

Protecting web authentication can be an initial step without making it the final architecture. Cloudflare's Zero Trust architecture for virtual desktops also supports controlling access to the desktop infrastructure itself. With the Cloudflare One Client and private-network connectivity, teams can restrict who and which devices may reach the endpoints carrying desktop traffic, including an existing Independent Computing Architecture (ICA) path. This requires its own routing and policy design; it is not a capability supplied by the browser authentication proxy alone.

Some workflows can remove the ICA dependency instead. For supported Windows workloads,  Cloudflare's browser-based remote desktop access connects users to a Windows host through Cloudflare Tunnel, without a local remote desktop client. If users only need a desktop to open web applications, Access and Browser Isolation can replace that web-access use case without a full virtual desktop.

Start by protecting the authentication service and existing desktop connections. Then replace virtual desktops used only for web access, and move supported Windows workflows to browser-based remote desktops. Reducing exposure does not have to wait for a full desktop migration.

Decide which authentication services need to be public

The same assessment applies beyond virtual desktops. An employee portal or management console may need to be reachable by approved users from anywhere, without needing to accept application requests from everyone.

Not every authentication page can require a prior employee identity. Consumer login pages and the identity-provider endpoints required to establish an initial session may need to remain publicly reachable. Protect those intentionally, and avoid introducing circular authentication dependencies. The point is to make reachability a design decision rather than an inherited default.

Start with one restricted service. Map the web and non-web paths into it, then put the access decision ahead of its authentication surface. Before expanding the rollout, validate the boundary in your own environment:

  1. Request the protected hostname without signing in. Confirm the request stops at Cloudflare rather than reaching the origin.
  2. Sign in with a test account outside the permitted group. Confirm it still cannot reach the protected application.
  3. Test direct-origin addresses and alternate hostnames. Confirm none bypasses the access policy.
  4. Sign in as an approved user. Confirm authentication, desktop launch, and session reconnection still work.

Check the relevant policy, firewall, and origin logs rather than relying only on what the browser displays. Repeat these checks when routing, identity, or failover settings change, so the next configuration update does not quietly reopen the path you closed.

Bring the controls together

The full architecture brings the access decision, web inspection, and availability controls in front of NetScaler, with restrictions on the connection to the origin. The public origin and Tunnel paths are alternatives. The native desktop connection remains separate, with an optional Zero Trust network access layer around that traffic.

Get started

Speak with a Cloudflare expert to plan the right controls for your environment. Download the solution brief and sign up for the upcoming webinar.

Andrei Migia, Nathan Sackett, and Doug Shepherd contributed to this post.

Training AIs to Solve CAPTCHAs

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2026/10/training-ais-to-solve-captchas.html

Interesting research:

Abstract: Vision-language models (VLMs) can solve visual CAPTCHAs without task-specific training, but the agents built on them approach every challenge from scratch. For such an agent, the hundredth instance of a familiar puzzle costs as much time and compute as the first. Specialized detectors invert the trade-off, answering in milliseconds but only for categories they were trained on. Neither improves with exposure. We study what changes when a solver improves with use. Our system pairs a fine-tuned YOLOv8 detector with an open-weight VLM behind a confidence-based router, and runs entirely from screenshots and operating-system input events, with no browser automation or DOM access. It reaches 85.4% overall and 84.2% macro accuracy across 16 classes, exceeding either component alone. Every answer VLM produces also serves as a training label, so the detector absorbs categories it was never trained for, typically after one or two encounters and without human annotation. The same loop also repairs it. A CAPTCHA operator can perturb images against the publicly released detector and drive its accuracy to 0%, but the perturbations leave VLM untouched, and its labels let the detector recover. Under a year-long simulated arms race in which the CAPTCHA operator re-crafts its perturbations each month, the solver recovers every round, and a cheap ~70%-accurate open-weight teacher hardens it as effectively as a perfect oracle. Visual CAPTCHA defenses that assume a failing bot stays failing therefore understate how quickly an adaptive solver returns.

The 7.3 kernel has been released

Post Syndicated from corbet original https://lwn.net/Articles/1101143/

Linus Torvalds has released the 7.3
kernel, as expected.

It’s Sunday afternoon, and this week I somehow kept my wits
together long enough to keep track of the day of the week, so the
release isn’t randomly delayed. Will wonders never cease?

Anyway, nothing very special seems to have happened this last week,
so as expected the final 7.3 is out, and thus tomorrow the merge
window for 7.4 opens. Except I’m on my annual family vacation, so
instead of merging anything first thing in the morning, I’ll spend
most of the day on a boat and under water. I’ll get back to merging
in the afternoon, but I expect my schedule to be a bit unusual for
a while.

This release is a record-breaker on all fronts; it brought in 18,765
non-merge commits from 3,021 developers, 807 of whom were first-time kernel
developers.

Significant changes in this release include some significant binfmt_misc extensions, some group-scheduling work
aimed at improving performance on large systems, the new failfs
filesystem that fails all operations, the fchroot() system call,
global per-CPU data for BPF programs, the completion of the sched_ext subscheduler feature,
working-set tracking for virtual
machines,
alternative
data-stream support
in the ntfs3 filesystem,
a long
list of SMB server improvements
,
and much more. See the LWN merge-window summaries
(part 1, part 2) and the KernelNewbies 7.3 page
for details.

GL.iNet Comet Q GL-RMQ1 Review A Single USB Type-C Cable Remote KVM Device with Tailscale

Post Syndicated from Eric Smith original https://www.servethehome.com/gl-inet-comet-q-gl-rmq1-review-a-single-usb-type-c-cable-remote-kvm-device-with-tailscale/

In our GL.iNet Comet Q (GL-RMQ1) review, we see how this USB Type-C remote KVM device with Tailscale makes connectivity easy

The post GL.iNet Comet Q GL-RMQ1 Review A Single USB Type-C Cable Remote KVM Device with Tailscale appeared first on ServeTheHome.

NVIDIA RTX Spark N1X Launch Overview: NVIDIA Arms Windows

Post Syndicated from Ryan Smith original https://www.servethehome.com/nvidia-rtx-spark-n1x-launch-overview-nvidia-arms-windows/

This week NVIDIA launched their high-end RTX Spark N1X platform. Bringing their powerful GB10 SoC to Windows for the first time, the company is seeking to remake the Windows laptop market with their powerful, AI-focused SoC

The post NVIDIA RTX Spark N1X Launch Overview: NVIDIA Arms Windows appeared first on ServeTheHome.

The collective thoughts of the interwebz