Insights

Behavioral Risk Brief: Arch AUR Repository

The Claim

Governance frameworks that treat package adoption as a routine maintenance mechanism create systemic risk when that same mechanism can transfer control of a trusted package name to an attacker. Zero Trust for Code addresses this by requiring a pre-execution trust decision on what a package does after any change in control, rather than extending trust indefinitely once a package has been established.

The Incident

Attackers began adopting orphaned packages in the Arch User Repository and pushing malicious follow-up commits. The campaign began with the package “openconnect-sso” and expanded to over 120 confirmed malicious packages, including established tools such as boringssl-git, icloudpd, and windscribe-cli-v2-bin. Arch Linux first used disabled package adoption on July 30 to slow the takeovers, then disabled all AUR pushes entirely on August 1 after the activity continued through newly created accounts. The payload is a Rust-based infostealer that exfiltrates browser data, credentials, and cryptocurrency wallets, and spreads further by harvesting SSH access from infected machines. This is the third wave to hit the repository this year, involving over 400 malicious packages and eventually reaching 1,500 by the time the cleanup was complete.

The Governance Failure

The governance failure is not that attackers targeted an open community-maintained repository, but that the mechanism designed to keep abandoned packages alive carries no verification of what that new maintainer intends to do with the trust they are inheriting. A package’s history, download count, and prior clean commits all belong to a previous maintainer whose relationship to the package has already ended.

This is compounded by how naturally this activity blends into the platform’s own design. Adopting an orphaned package and pushing an update is exactly what the system was built to allow, which means the attack does not require any exploit or credential theft, only patience in waiting for packages to go unmaintained and a willingness to register new accounts once old ones are banned. An organization scanning package contents for known malware signatures would find nothing to flag until after a malicious update had already landed.

The underlying breakdown is the absence of a trust decision at the point of when maintainership actually changes hands. This is now the third such wave in a single year, and each occurrence has been addressed by suspending the adoption mechanism itself rather than by verifying what any given maintainer transition introduces. As long as trust transfers automatically with the act of adoption, disabling the feature is the only lever available once an attack is already underway.

The Regulatory and Business Exposure

  • Credential, browser data, and cryptocurrency theft delivered through packages with established, previously trusted histories.
  • Lateral spread across networks through harvested SSH access on infected developer machines.
  • Repeated incidents addressed only by suspending a core platform feature.

What Your Auditors Will Ask

  • How do you validate a package’s behavior after a change in maintainer or ownership, independent of its prior history?
  • What controls detect malicious activity introduced through a legitimate platform mechanism rather than an exploit?
  • How do you account for risk in third-party or community repositories your developers use outside sanctioned channels?
  • What evidence do you maintain that a package was evaluated again after control of it changed hands?
  • How do you respond when a repeated pattern of compromise is addressed by disabling a feature rather than verifying trust directly?

A consistent signal is the disconnect between a package’s accumulated history and what its current maintainer is doing with it. A clean record under a previous owner says nothing about the version published by whoever holds that access now.

Zero Trust for Code Value

Zero Trust for Code introduces a trust decision at the point a package is about to execute, evaluating what it does independent of its maintainership history or how long it has existed in a repository. This means a package earns permission to run based on its current behavior, not on trust accumulated under a maintainer who may no longer control it.

This directly addresses the governance weakness exposed by the AUR campaign: the assumption that a package’s established history remains meaningful after maintainership changes hands. By requiring a pre- xecution trust decision independent of ownership history, organizations can evaluate what a newly adopted or updated package actually does, rather than relying on a platform feature being disabled as the only available response.

The result is a governance model where trust is re-established every time a package changes hands or executes, closing the space a repeated attack pattern has relied on across three separate incidents this year.

Governance Action Brief

  • Establish governance controls that evaluate package behavior independently of accumulated history or prior maintainer reputation.
  • Require a pre-execution trust decision whenever a package’s maintainer or ownership changes.
  • Treat community-maintained repositories as requiring the same execution-level scrutiny as official package sources.
  • Monitor for SSH-based lateral spread originating from developer machines running third-party packages.
  • Maintain a record of package trust decisions evaluated at each maintainership transition, not only at initial adoption.

Sources

Analysis based on reporting from BleepingComputer and Cybernews on the Arch Linux AUR supply chain campaign, CodeHunter Labs evaluation of governance gaps in maintainership-transfer execution trust, and alignment with NIST 800-53 and NIST SSDF.

Download the PDF

Behavioral Risk Brief: Joyfill npm Packages

The Claim

Governance frameworks that treat install-script restrictions as sufficient protection create systemic risk when malicious code is embedded to execute at import rather than install. Zero Trust for Code addresses this by requiring a pre-execution trust decision on what a package does when it runs, regardless of which lifecycle stage triggers that behavior.

The Incident

Malicious beta releases of two legitimate npm packages, “@joyfill/components” and “@joyfill/layouts”, were published to the registry. Rather than relying on a postinstall or preinstall hook, the implant was embedded directly into the compiled distribution bundle. This means it executes the moment the module is imported into a project, not when it is installed. This bypasses the standard defensive flag that disables install scripts since that protection has no effect on code that runs at import time. Once active, the implant resolves its command-and-control address by reading a blockchain transaction, first on Tron and then pivoting to Binance Smart Chain, before deploying a remote access trojan and a separate credential stealer targeting browser data, cryptocurrency wallets, and developer tokens.

The Governance Failure

The governance failure is not that a trusted package was compromised, but that the defensive posture many organizations rely on assumes malicious behavior arrives through a specific, well-known lifecycle stage. Disabling install scripts has become a standard mitigation precisely because so many prior campaigns relied on that mechanism. This implant was built around the assumption that organizations would rely on exactly that control and then move to a stage that the control does not cover.

This is compounded by the choice to resolve command infrastructure through blockchain transactions rather than a fixed address. A hardcoded command-and-control server can be identified, blocklisted, and starved of new instructions once discovered. A transaction-based lookup gives the attacker a way to redirect the payload at any time without publishing a new package version, meaning a security team’s confidence in having identified and blocked the infrastructure may already be outdated the moment it is recorded.

The underlying breakdown is the absence of a trust decision that evaluates what a package does regardless of which lifecycle stage triggers it. Any control anchored to a single execution point, install, import, or otherwise, leaves every other point unexamined, and this campaign demonstrates that attackers will simply relocate to whichever stage current defenses do not reach.

The Regulatory and Business Exposure

  • Bypass of a widely deployed install-script mitigation through code that executes only at import.
  • Command-and-control infrastructure that can be silently redirected without any new package version or registry activity.
  • Exposure of developer credentials, tokens, and cryptocurrency wallets across affected workstations.

What Your Auditors Will Ask

  • How do you validate package behavior at every lifecycle stage, not only at install?
  • What controls would detect an implant that activates specifically because a package is imported?
  • How do you account for command-and-control infrastructure that can change without any new software release?
  • What evidence do you maintain that a package’s behavior was evaluated after import, not only at publication?
  • How do you verify that mitigations built around one execution stage are not simply displacing risk to another?

A consistent signal is the disconnect between where a mitigation was built to work and where an attacker chooses to operate. A control anchored to one execution stage says nothing about what happens at the next one.

Zero Trust for Code Value

Zero Trust for Code introduces a trust decision at the point a package actually executes, evaluating its behavior regardless of whether that execution happens at install, at import, or at any other lifecycle stage. This means a package earns permission to run based on what it does in the moment, not based on which stage a defensive control happens to cover.

This directly addresses the governance weakness exposed by the Joyfill compromise: the assumption that disabling install scripts closes the relevant risk. By requiring a pre-execution trust decision independent of lifecycle stage, organizations can evaluate import-time behavior with the same rigor applied to installation, removing the incentive to simply relocate a payload to an uncovered stage.

The result is a governance model where every execution point carries the same trust requirement, closing the space attackers rely on when one stage is defended and another is not.

Governance Action Brief

  • Establish governance controls that evaluate package behavior at mport, not only at installation.
  • Require a pre-execution trust decision independent of which lifecycle stage triggers execution.
  • Treat install-script restrictions as one control among several, not a complete mitigation on their own.
  • Monitor for command-and-control resolution methods, including blockchain-based lookups, that evade static infrastructure blocking.
  • Maintain a record of package behavior evaluated per execution stage rather than assumed covered by a single control.

Sources

Analysis based on The Hacker News and StepSecurity (July 28-29, 2026) on the Joyfill npm supply chain compromise, CodeHunter Labs evaluation of governance gaps in lifecycle-stage execution trust, and alignment with NIST 800-53 and NIST SSDF integrity control objectives.

Download the PDF. 

Behavioral Risk Brief: Notepad ++

The Claim

Governance frameworks that treat a legitimate, signed application as inherently safe create systemic risk when that application can be paired with malicious components it will execute automatically. Zero Trust for Code addresses this by requiring a pre-execution trust decision on what an application actually loads and runs, rather than extending trust to everything bundled alongside a recognized binary.

The Incident

CERT-UA disclosed a campaign attributed to the threat cluster UAC-0099 that delivers a fake Notepad++ plugin to compromise Windows systems. A phishing email leads victims through a shortened link to a ZIP archive containing a VBScript disguised as a PDF, which displays a decoy document while silently retrieving a second archive. That archive contains a complete and legitimate copy of Notepad++, a malicious DLL named NppExport.dll, and supporting tools. The script launches the genuine Notepad++ binary, which automatically loads the malicious DLL as a plugin. That DLL unpacks additional components and establishes persistence through a scheduled task running every three minutes, ultimately delivering a loader called “BURNYBEAR” and a modified payload tracked as “MATCHBOIL.V2”.

The Governance Failure

The governance failure is not that Notepad++ was impersonated, but that the actual application delivered to the victim is the real legitimate Notepad++ binary that is unmodified and fully functional. Any control built around verifying the identity or signature of the executable being launched would find nothing to object to. The compromise lives entirely in what that legitimate binary is permitted to load and execute once it runs and a layer signature verification is never reached.

This is compounded by how plugin architectures function. A trusted application loading a DLL from its own plugins directory is completely ordinary behavior. It is indistinguishable at launch from any legitimate extension a user might install. Trust granted to the parent executable extends implicitly to whatever it loads next, without a separate decision evaluating what that plugin does once it holds the parent process’s privileges.

The underlying breakdown is the absence of a trust decision at the moment a loaded component begins executing, as distinct from when the parent application launches. This pattern is not unique to Notepad++. Any application with a plugin or module-loading architecture creates the same exposure, and as long as trust is assigned only to the parent process, this technique remains available regardless of which application it is built around.

The Regulatory and Business Exposure

  • Persistent access established through a scheduled task disguised as routine application behavior.
  • Resource exhaustion triggered as a fallback if the malicious loader runs outside expected conditions.
  • Reliance on signature checks that verify the parent application while loaded plugins go unexamined.

What Your Auditors Will Ask

  • How do you validate the behavior of plugins or modules loaded by applications your organization already trusts?
  • How do you distinguish a legitimate binary from the components it is permitted to load once running?
  • What controls detect a scheduled task established through an otherwise trusted application?
  • How do you verify that application allowlisting accounts for what a binary executes after launch?
  • What evidence do you maintain that a loaded plugin’s behavior was evaluated independently of the parent application’s trust status?

A consistent signal is the disconnect between the executable that was verified and the code that actually ran. A legitimate binary passing every identity check says nothing about what it will load once permitted to execute.

Zero Trust for Code Value

Zero Trust for Code introduces a trust decision at the point a loaded component is about to execute, evaluating what that plugin or module will do independently of whether the parent application is legitimate or already allowlisted. A plugin is assessed on its own behavior, not granted the trust status of the executable that loads it.

This directly addresses the governance weakness exposed by UAC-0099: the assumption that verifying a parent application is sufficient because everything it loads inherits that same trust. By requiring a pre-execution decision for loaded components specifically, organizations can stop a
malicious plugin even when the application launching it is entirely legitimate.

The result is a governance model where trust is evaluated at every layer, the parent binary and everything it loads, rather than assumed to flow automatically from one to the other.

Governance Action Brief

  • Establish governance controls that evaluate plugin behavior independently of the parent application’s trust status.
  • Require a pre-execution trust decision for any component loaded dynamically by an approved application.
  • Enforce execution policies covering plugin directories for widely used developer and productivity applications.
  • Monitor for scheduled tasks or persistence mechanisms established through processes descending from trusted applications.
  • Maintain a record of loaded components evaluated separately from the parent binary’s approval.

Sources

Analysis based on reporting from The Hacker News (July 24, 2026) on CERT-UA’s disclosure of the UAC-0099 campaign, CodeHunter Labs evaluation of governance gaps in plugin execution trust, and alignment with NIST 800-53 and NIST SSDF integrity control objectives.

Download the PDF. 

The Fourth Question in Software Supply Chain Security

Software supply chain security has matured fast. Most enterprises can now answer what is inside their software, where it came from, and how it was built far better than they could five years ago. SBOMs, code signing, and build provenance made that possible, and Executive Order 14028 pushed agencies, contractors, and enterprises to invest in all three.

In a new byline for Help Net Security, CodeHunter CEO Ken Ammon argues those three answers still leave the most important question open: what can this software do once it runs?

Composition is not behavior

An SBOM tells you the ingredients. It does not predict the meal. As Ken writes, a package can have a clean dependency tree and still attempt credential access, persistence, lateral movement, or data exfiltration. Context decides whether a behavior is routine or dangerous. File deletion is expected in a disk cleanup utility and alarming in an office macro. Credential access belongs in a password manager, not in a package dependency.

Signing and provenance run into the same limit. They verify who published the software and how it was built, which strengthens integrity, accountability, and auditability. They do not verify trustworthiness. Signed software can behave maliciously. A trusted vendor update can be compromised. An AI coding agent can generate code that works exactly as intended and still introduces consequences nobody authorized.

Most security programs still treat origin as the final trust decision. Ken’s argument is that origin is a reasonable first filter and a dangerous last word.

AI is forcing the timing question

The piece points to University of Toronto research demonstrating an AI-powered worm that adapts its attack strategy as it moves through a network, reasoning through new attack paths rather than exploiting a fixed vulnerability. When attackers can generate variants instantly, the observable surface of malicious code becomes unstable, and waiting for recognizable signatures or post-execution alerts to make trust decisions arrives too late.

The June 2026 AI executive order on cybersecurity reflects the same federal concern. The trust model built for slow-moving software does not hold when code is generated, modified, and deployed faster than human review can keep up.

From software identity to software behavior

Ken’s conclusion extends a principle security teams already know. Zero Trust rejected implicit trust in networks, devices, and identities. The same standard now needs to apply to software execution: no artifact should be trusted solely because of its origin, signature, or reputation.

That is the foundation of Zero Trust for Code. Supply chain controls remain essential, but the practical question changes from “do we recognize this?” to “is this behavior authorized?” Answering it means evaluating what an artifact is capable of doing, before execution, against enterprise policy, with evidence a security team can stand behind.

Read Ken’s full byline at Help Net Security: Why SBOMs, signing, and provenance still don’t tell you if software is safe

Behavioral Risk Brief: SleeperGem

The Claim

Governance frameworks that treat package name recognition and maintainer history as ongoing proof of safety create systemic risk when a compromised artifact can behave differently
depending on where it executes. Zero Trust for Code addresses this by requiring a pre-execution trust decision on what a package will do in a specific environment, rather than relying

The Incident

Researchers identified malicious versions of three RubyGems packages published to RubyGems.org in a campaign named SleeperGem. One package, “git_credential_manager”, impersonated Microsoft’s official Git Credential Manager, while the other two were Dendreo and a fastlane plugin. Dendreo and the fastlane plugin were legitimate but dormant packages last updated in 2019 and 2020 before malicious updates were pushed from reactivated maintainer accounts. Each release acted as a loader that checked for roughly 30 CI-related environment variables associated with platforms such as GitHub Actions, GitLab, CircleCI, Jenkins, and Vercel. If any were detected, the payload exited; otherwise, it downloaded a second-stage payload from an attacker-controlled host and installed a persistent native daemon on the developer’s machine.

The Governance Failure

The governance failure is not that malicious versions reached the registry, but that the trust in these packages was based on signals that assumed behavior stays constant once established: a recognizable name, a maintainer with account history, and in two cases, years of clean, dormant existence. None of those signals accounted for what a specific installed version would actually do,
and none of them accounted for the possibility that the artifact itself would behave differently depending on the environment it reached.

This is compounded by how the malware was built to defeat exactly the kind of monitoring most organizations rely on. By checking for CI environment variables before acting, the payload was designed to pass cleanly through any build system where automated scanning or sandboxing might catch it and only reveal its actual behavior on a developer’s own machine, typically where that scrutiny is far lighter. An organization that validated this package inside a CI pipeline and considered that it was sufficient would have observed an artifact that did nothing at all.

The underlying breakdown is the absence of a trust decision that accounts for where and how an artifact executes, not just whether it was scanned somewhere at some point. Dependency inheritance made this worse, since developers who never made an explicit decision to install “git_credential_manager” were still exposed to it through other packages that quietly pulled it in. Trust extended once, at the point a dependency was declared, without any mechanism to re-evaluate what that dependency introduced later.

The Regulatory and Business Exposure

  • Persistent, unauthorized access to developer machines through a native daemon installed outside CI-monitored environments.
  • Compromise inherited through dependency relationships, exposing organizations that never directly installed the malicious package.
  • Reliance on maintainer history and package dormancy as safety signals, providing no evidence of current version behavior.

What Your Auditors Will Ask

  • How do you validate what a package will do differently across CI environments versus developer workstations?
  • How do you account for risk introduced through transitive dependencies your teams never directly selected?
  • What controls detect a long-dormant package receiving updates after years of inactivity?
  • How do you verify that a package’s behavior in a monitored build environment reflects its behavior everywhere else it runs?
  • What evidence do you maintain that execution was evaluated on developer machines specifically?

A consistent signal is the disconnect between where an organization’s monitoring is strongest and where an artifact actually executes. Confidence built entirely on CI-level scrutiny leaves developer machines, where this payload was designed to activate unexamined.

Zero Trust for Code Value

Zero Trust for Code introduces a trust decision at the point where a package is about to execute, evaluating what it will do in that specific environment rather than relying on a name, a maintainer’s history, or a scan performed somewhere else entirely. This means a package is assessed for what it does on the machine where it actually runs, whether that machine is a CI
runner or a developer’s own workstation.

This directly addresses the governance weakness exposed by SleeperGem: the assumption that an artifact behaves the same way everywhere, and that reputation signals such as account age or
years of dormancy are evidence of safety rather than simply an absence of prior scrutiny. By requiring a pre-execution trust decision independent of environment, organizations can evaluate
what a package attempts to do on a developer machine even when that same package does nothing at all inside a monitored CI pipeline.

The result is a governance model where trust is assessed at every point of execution rather than inherited once from a dependency declaration or a clean publishing history. This closes the
distance between where an organization is confident and where an artifact is actually running.

Governance Action Brief

  • Establish governance controls that evaluate package behavior separately for CI environments and developer workstations.
  • Require a pre-execution trust decision for transitive dependencies, not only for packages directly declared by a project.
  • Enforce execution policies on developer machines with the same rigor currently applied to CI/CD pipelines.
  • Treat maintainer account age, package dormancy, and prior clean history as insufficient evidence of current version safety.
  • Maintain a record of what a package was permitted to execute, evaluated per environment rather than assumed uniform across all of them.

Download the PDF

Sources

Analysis based on reporting from The Hacker News (July 20, 2026) and CodeHunter Labs evaluation of governance gaps in environment-dependent execution trust, and alignment with NIST 800-53 and NIST SSDF integrity control objectives.

Stephen McCarney Joins CodeHunter as Chief Strategy Officer

stephen mccarney, chief strategy officer, CodeHunterCodeHunter has named Stephen McCarney as Chief Strategy Officer, adding a go-to-market leader with a track record of scaling category-defining security companies to help expand Zero Trust for Code across enterprise and government markets.

McCarney will lead corporate strategy, market expansion, strategic partnerships, and go-to-market execution as CodeHunter builds out its footprint across software supply chain, endpoint, DevSecOps, and security operations environments.

He joins from Merlin Group, where he served as Chief Marketing Officer helping scale disruptive cybersecurity companies for government and commercial critical infrastructure markets. Earlier in his career, he helped position and scale one of the industry’s first cloud-based SASE and Zero Trust Network Access platforms as VP of Marketing at OPAQ Networks, later acquired by Fortinet, and held senior marketing and security leadership roles at Arxan Technologies and Unisys. 

“Stephen has spent his entire career helping category-defining cybersecurity companies translate technical innovation into market leadership…His experience scaling Zero Trust, SASE, cloud security, application security, and emerging technology companies will be instrumental as we expand Zero Trust for Code into a critical control layer for enterprise and AI security,” said Ken Ammon, CEO of CodeHunter.

McCarney points to timing as the opportunity: AI-generated code, autonomous development tools, and machine-speed attacks are testing the assumptions behind traditional detection and software supply chain security, the exact gap Zero Trust for Code is built to close. 

Read Stephen’s thoughts on joining the CodeHunter team on LinkedIn. 

Behavioral Risk Brief: Ghostcommit

The Claim

Governance frameworks that treat automated code review as sufficient validation create systemic risk when trust is granted based on what a scanner can see rather than what an artifact
will do once an agent acts on it. Zero Trust for Code addresses this by requiring a pre-execution trust decision on what a merged artifact actually does, not on whether it passed a review process
built to catch a narrower category of risk.

The Incident

A pull request attack shows how an AI-authored convention file can smuggle instructions past code review by hiding them inside an image. The technique, called Ghostcommit, embeds
exfiltration instructions as plain text inside a PNG referenced by an AGENTS.md file, the kind of file coding agents read automatically and treat as standing project policy. Because tools like
CodeRabbit exclude image files from review by default, and Cursor’s Bugbot does not process image files, the pull request merges without objection. Nothing happens at merge time. The
payload only activates later, when a developer asks the coding agent to complete an unrelated, routine task in a separate session. The agent reads the merged convention file, follows its
reference to the image, opens the repository’s .env file, and writes the contents into a new code constant disguised as a build value.

The Governance Failure

The governance failure is not that a review tool missed a malicious pull request, but that trust was granted to a merged artifact based on the narrow set of risks a reviewer was built to catch, rather than on what that artifact would do once an agent later acted on it. A pull request that passes review is treated as safe going forward, even though the review only evaluated text content and never assessed what would happen when a different tool, operating under different assumptions, executed instructions the artifact contained.

This is compounded by how convention files function inside agentic development workflows. Files like AGENTS.md are designed to be read automatically and treated as authoritative project policy, which means anything referenced from them inherits that same standing without a separate trust decision. An image cited as a build specification carries the same authority as an explicit line of code, despite never being evaluated as one.

The underlying breakdown is the absence of a trust decision at the moment an agent actually acts on repository content. Review at merge time answers whether a reviewer objected to what it could see. It does not answer whether an agent, executing days or weeks later under an entirely different toolchain, will trust and act on content the original review never evaluated in that context.

The Regulatory and Business Exposure

  • Exfiltration of credentials, API keys, and connection strings through routine agent activity unrelated to the original pull request.
  • Merge-time review certifying an artifact as safe without evaluating what an agent will later execute against it.
  • Inconsistent outcomes across coding tools and models, undermining any assumption that review status is a durable safety signal.

What Your Auditors Will Ask

  • How do you validate what an AI coding agent will do with a merged artifact, independent of whether that artifact passed code review?
  • How do you account for content types, such as images or binary files, that your review tooling does not evaluate?
  • What controls detect an agent reading and acting on repository content outside the task the developer actually requested?
  • How do you verify that review approval reflects an evaluation of execution behavior, not just visible text content?
  • What evidence do you maintain that a merged artifact’s behavior was assessed at the point an agent acts on it, not only at the point it was reviewed?

A consistent signal is the disconnect between what a review process was built to catch and what an artifact is later permitted to do. Passing review answers a narrower question than the one that determines actual risk.

Zero Trust for Code Value

Zero Trust for Code introduces a trust decision at the point an agent is about to act on repository content, evaluating what that action will do against defined policy rather than relying on whether
the underlying artifact previously passed code review. This means an image, a configuration file, or any other referenced content is assessed on the behavior it produces when acted upon, not on
whether a reviewer built for a different purpose objected to it.

This directly addresses the governance weakness exposed by Ghostcommit: the assumption that merge-time review is a durable safety signal for actions an agent takes long after that review
occurred. By requiring a pre-execution trust decision, organizations can prevent an agent from exfiltrating credentials through a routine task, regardless of what a prior review process did or did
not evaluate.

The result is a governance model where an agent’s actions are evaluated against policy at the moment they occur, closing the distance between what was reviewed and what is later executed
rather than assuming the two remain aligned indefinitely.

Governance Action Brief

  • Establish governance controls that evaluate agent behavior at the point of execution, independent of prior code review outcomes.
  • Require a pre-execution trust decision for any action an agent takes based on repository content, including convention files and referenced media.
  • Enforce execution policies across coding agents and IDE tooling that read project files automatically as standing instructions.
  • Treat merge-time review as one input among several, not as a durable safety determination for future agent actions.
  • Maintain a record of what an agent was permitted to act on, even if that content was previously reviewed.

Download the PDF

Sources

Analysis based on reporting from BleepingComputer (July 11, 2026) on the Ghostcommit technique disclosed by the University of Missouri-Kansas City’s ASSET Research Group

Security Brief: StegoAd Campaign

The Claim

Governance models that treat official marketplaces as trusted control boundaries assume that validation at admission ensures safety over time. When software is permitted to execute based
on initial approval rather than continuous verification, trust becomes static while behavior evolves. Zero Trust for Code addresses this by enforcing control at execution, ensuring that approved software cannot perform actions outside defined policy.

The Threat

Microsoft removed 119 malicious extensions from the Edge Add-ons store tied to a campaign known as “StegoAd.” These extensions seemed to be common legitimate tools, such as ad blockers, VPNs, and translators, and functioned normally to build user trust. Malicious payloads were concealed within image and font files and remained dormant for days after installation. It activated only after bypassing multiple evasion checks. Once active, the extensions enabled credential theft, session hijacking, ad fraud, and remote code execution, affecting an install base of up to 2.6 million users.

The Problem

The governance failure lies in the reliance on pre-publication validation as a sufficient control, without enforcing constraints on behavior after deployment. Review processes focus on visible code and declared functionality, but do not account for hidden execution paths embedded within non-executable assets or delayed activation patterns. This creates a gap where software passes acceptance criteria while retaining the ability to execute unauthorized actions at a later time.

This issue is compounded by trust inheritance within official ecosystems. Software distributed through approved marketplaces gains implicit credibility, reducing scrutiny from both users and organizations. Attackers exploit this trust by designing software that behaves correctly during initial evaluation, then transitions to malicious operation after predefined conditions are met. Because governance decisions are tied to admission rather than ongoing behavior, this transition occurs outside any enforced control boundary.

The underlying breakdown is the absence of continuous behavioral governance across the software lifecycle. Once software is installed, there are no enforceable limits on how it interacts with credentials, sessions, or external systems. This allows malicious functionality whether it be hidden, delayed, or remotely delivered, to execute without restriction, demonstrating that trust assigned at installation does not translate into control at runtime.

For a deeper look at where the trust decision breaks down across the software lifecycle, see Applying Zero Trust to Software: The Gap Between Provenance and Permission.

The Impact

  • Unauthorized execution within trusted browser environments at scale.
  • Credential and session compromise leading to account takeover risk.
  • Financial impact through ad fraud and transaction manipulation.
  • Erosion of trust in marketplace-based validation and approval systems.

What to Watch For

  • Extensions or software exhibiting delayed activation after installation.
  • Legitimate features paired with unexplained background network activity.
  • Use of non-traditional assets (images, fonts) in execution workflows.
  • Software maintaining normal function while generating anomalous outcomes.

A consistent signal is the misalignment between approved functionality and observed behavior. Software continues to meet user expectations while simultaneously performing actions outside defined operational boundaries.

Zero Trust for Code Value

Zero Trust for Code introduces enforcement that operates independently of how software is sourced or approved, ensuring that all execution is validated against defined behavioral policy. By evaluating actions before completion, it prevents software from performing unauthorized operations whether it is trusted, approved, or widely distributed.

This directly addresses the governance gap exposed in this campaign: the lack of control after acceptance. Instead of assuming that vetted software will behave as intended, Zero Trust for Code ensures that only permitted actions are allowed to execute, regardless of origin, reputation, or prior validation.

The result is a governance model where trust is not static but continuously enforced, closing the gap between approval and execution and preventing delayed or hidden functionality from operating outside control.

CISO Action Brief

  • Establish governance policies that extend beyond software admission to continuous execution monitoring.
  • Enforce behavioral constraints on all applications and extensions, regardless of source or approval status.
  • Treat marketplace-distributed software as untrusted until behavior is validated in context.
  • Monitor for delayed or conditional execution patterns across endpoints.
  • Centralize decisioning to ensure that approval does not override enforcement.

Methodology & Sources

Analysis based on reporting from The Hacker News (June 29, 2026) on Microsoft’s removal of 119 malicious Edge extensions tied to the StegoAd campaign, supported by Microsoft research
CodeHunter Labs evaluation of governance failures in marketplace-driven software trust models.

Download the PDF

Security Brief: Crypto Heist

The Claim

Governance frameworks that rely on external trust signals create a control gap when those signals can be intentionally manipulated. When trust is inferred from consensus rather than verified through enforceable policy, organizations lose control over what software is permitted to execute. Zero Trust for Code addresses this by shifting from perception-based trust to pre-execution enforcement, ensuring that credibility cannot override behavioral governance.

The Threat

A large-scale cryptocurrency theft campaign demonstrates this failure, where attackers constructed a coordinated reputation ecosystem across GitHub, SourceForge, YouTube, and malware analysis platforms to promote malicious tools. These tools were presented as legitimate crypto utilities, supported by inflated downloads, fake engagement, and manipulated through what was thought to be safe classifications. Once executed, the software deployed a clipboard hijacker that intercepted and replaced cryptocurrency wallet addresses, redirecting transactions to attacker-controlled accounts. The campaign’s effectiveness was driven not by technical evasion, but by successfully manufacturing trust across multiple independent systems.

The Problem

The governance failure is rooted in the absence of controls that validate software behavior independently of reputation signals. Organizations implicitly trust software that appears validated by external ecosystems but lack mechanisms to verify whether that trust is justified at the point of execution. This results in a misalignment between how trust is assigned and how risk is controlled, allowing manipulated credibility to bypass internal safeguards.

This issue is compounded by the widespread use of distributed validation channels such as repositories, content platforms, and security scanning tools. They are not governed as unified trust sources. Attackers can influence each independently, creating a reinforcing loop where perceived legitimacy increases with each additional signal. Without centralized governance over software acceptance criteria, these signals collectively override internal policy, effectively outsourcing trust decisions to systems that are not designed to enforce integrity.

This creates a condition in which software is permitted to execute based on perceived credibility rather than verified behavior. Once executed, there are no mechanisms to prevent high-impact actions like clipboard manipulation from occurring. The failure is not the presence of malicious code, but the lack of enforceable controls that ensure software actions remain within defined policy boundaries, regardless of how trustworthy it appears.

Sophisticated threat actors are increasingly building campaigns around trust manipulation rather than technical exploits. Understanding how advanced malware behaves differently is essential context for why reputation signals keep failing as a control.

The Impact

  • Unauthorized execution of software based on manipulated external trust signals.
  • Financial loss through ungoverned transaction manipulation behavior.
  • Breakdown of assurance in reputation-based validation systems.
  • Increased regulatory exposure due to lack of enforceable software control.

What to Watch For

  • Software adoption driven by external ratings, downloads, or social validation signals.
  • High-trust artifacts with inconsistent or unverifiable development provenance.
  • Discrepancies between reputation indicators and actual runtime behavior.
  • Security tools or platforms providing conflicting or overly permissive trust signals.

A consistent signal is the divergence between assigned trust and enforced control. Systems allow execution based on perceived legitimacy, but fail to validate whether resulting actions align with acceptable operational boundaries.

Zero Trust for Code Value

Zero Trust for Code introduces a control model where trust is established through enforceable policy at execution, not inferred from external validation signals. By evaluating actions before they complete, it ensures that even widely trusted or highly rated software cannot perform unauthorized behavior.

This directly addresses the governance gap exposed in this campaign: the lack of control over what trusted code is allowed to do. Instead of relying on reputation, Zero Trust for Code enforces constraints on execution outcomes, ensuring that software actions remain within defined boundaries regardless of how trust was initially assigned.

The result is a security and governance framework where trust is continuously verified through behavior, enabling organizations to maintain control even when external ecosystems are compromised or manipulated at scale.

CISO Action Brief

  • Establish governance policies that define acceptable software behavior independent of reputation or source.
  • Eliminate reliance on external validation signals as a primary control mechanism for execution decisions.
  • Enforce behavioral constraints on all executed code, regardless of perceived credibility.
  • Centralize trust decisioning to ensure consistency across distributed validation sources.
  • Monitor and audit execution outcomes rather than relying solely on pre-ingestion validation.

Methodology & Sources

Analysis based on Dark Reading reporting (June 22, 2026) on the cryptocurrency heist leveraging a multi-platform fake reputation campaign and CodeHunter Labs evaluation of governance failures in reputation-based trust systems.

Download the PDF

Security Brief: WordPress CDN Breach

The Claim

Security models that rely on trusted delivery infrastructure assume that software served from legitimate domains retains its integrity over time. When distribution channels become the attack surface, that assumption collapses. Zero Trust for Code addresses this by verifying the integrity and intent of executed code regardless of its delivery source, ensuring that trust is not implicitly inherited from infrastructure.

The Threat

A supply chain attack targeting WordPress plugins such as OptinMonster, TrustPulse, and PushEngage, demonstrate how trusted distribution channels can be weaponized. Attackers tampered with JavaScript files served via the vendor’s CDN, and injected malicious code that executed only when a logged-in administrator loaded the site. Once triggered, the script leveraged the admin’s session to create unauthorized administrator accounts and deploy a hidden backdoor plugin, granting persistent remote access. The attack affected a plugin ecosystem reaching over 1.2 million websites, with the malicious payload designed to evade detection by remaining inactive for normal users and hidden from administrative interfaces.

The Problem

  • Trusted Distribution Risk: Code served from legitimate CDN endpoints is implicitly trusted, even when integrity is compromised upstream.
  • Session Exploitation: Attacks increasingly leverage valid authenticated sessions, making malicious actions indistinguishable from legitimate administrative activity.
  • Execution Origin Blind Spot: Security controls fail to validate where code originates at execution time versus where it is hosted.
  • Lifecycle Integrity Gap: Software integrity is not continuously verified as it moves through delivery, rendering downstream environments vulnerable.

The constraint failure appears at the boundary between delivery and execution. Organizations treat trusted sources, such as vendor CDNs, as static anchors of integrity, assuming that content delivered through them reflects intended functionality. This model breaks when attackers compromise the distribution layer itself, turning legitimate delivery mechanisms into propagation channels for malicious behavior.

This is the same gap supply chain attacks have exploited repeatedly. Signing confirms a publisher. It doesn’t confirm behavior.

What distinguishes this attack is its reliance on authorized context to execute unauthorized outcomes. The injected scripts do not exploit vulnerabilities in the traditional sense. Instead, they operate within valid administrator sessions, using legitimate tokens and workflows to escalate access. This bypasses many detection mechanisms because actions appear operationally correct, even as they produce adversarial outcomes.

The Impact

  • Full administrative takeover of affected websites without exploiting traditional vulnerabilities.
  • Persistent unauthorized access via concealed backdoor plugins.
  • Large-scale exposure across over a million downstream sites through shared dependencies.
  • Reduced ability to distinguish legitimate activity from attacker-controlled actions.

What to Watch For

  • Administrative actions without corresponding operator intent.
  • Scripts loaded from trusted domains initiating privileged operations.
  • Presence of unknown or hidden plugins not visible in standard dashboards.
  • Outbound communication to unfamiliar domains triggered during admin sessions.

A consistent signal is the divergence between authorized execution context and actual intent. Actions performed within legitimate sessions begin to produce outcomes that exceed operational expectations, indicating that trust in execution context alone is no longer sufficient for validation.

Zero Trust for Code Value

Zero Trust for Code introduces enforcement at the moment code executes, ensuring that actions initiated by scripts, regardless of its origin, are validated against defined behavioral policies before completion. This eliminates reliance on the assumption that trusted delivery channels guarantee safe execution.

By eliminating complete trust from infrastructure and instead governing it in verified execution behavior, organizations gain control over actions performed within privileged contexts. Even when code is delivered through legitimate channels and executed within valid sessions, its outcomes remain subject to enforcement.

This model transforms supply chain risk from an uncontrollable exposure into a governed control point, ensuring that integrity is continuously validated across delivery and execution layers, and preventing unauthorized actions from occurring even in trusted environments.

Zero Trust for Code: Trust but verify.

CISO Action Brief

  • Enforce behavioral validation for administrative actions, regardless of session legitimacy.
  • Implement integrity checks for externally served scripts, including CDN-delivered assets.
  • Restrict and monitor privileged operations initiated from client-side execution contexts.
  • Establish detection for invisible or self-concealing persistence mechanisms.
  • Prioritize enforcement on high-impact web platforms and externally dependent services.

Methodology & Sources

Analysis based on reporting from The Hacker News (June 15, 2026) on the WordPress plugin supply chain attack, research from Sansec on CDN-based code injection techniques, and CodeHunter Labs evaluation of execution integrity risks in external software components.

Download the PDF

Security Brief: Arch Linux Rootkit

The Claim

Trust in community-maintained software ecosystems are becoming increasingly fragile when ownership, update control, and build processes can be altered without continuous verification. Security models that rely on repository reputation or maintainer identity, fail to account for silent trust transitions. Zero Trust for Code addresses this by enforcing integrity and behavior validation at execution, not just ingestion.

The Threat

More than 400 packages in the Arch User Repository (AUR) were compromised by a threat actor who impersonated and took over maintainer accounts to distribute malicious code. The attack embedded both pre-install and post-install scripts that retrieved a malicious npm package, which delivered a Linux malware payload including credential stealing and rootkit capabilities. The malware specifically targeted developer environments, harvesting sensitive data such as GitHub credentials, SSH keys, tokens, and collaboration platform data, while leveraging eBPF functionality to operate at the kernel level and evade detection.

The Problem

  • Trust Transition Blindness: Ownership changes and maintainer privilege shifts are not continuously validated, allowing malicious actors to inherit implicit trust.
  • Build-Time Execution Risk: Software installation scripts execute with high privilege, creating an enforcement gap before runtime visibility even begins.
  • Repository Integrity Assumption: Community repositories are assumed to reflect benign intent despite lacking centralized validation or behavioral control.
  • Pipeline Contamination: Malicious logic enters development and CI/CD workflows upstream, propagating through trusted build environments.

The breakdown emerges at the moment trust is transferred, not when code is executed. Software ecosystems like AUR depend on a chain of implicit assumptions such as maintainers remain legitimate, that scripts execute as intended, and that updates are safe extensions of prior trust decisions. This model fails when attackers exploit governance gaps, inserting malicious logic into the build stage where controls are weakest.

What makes this attack structurally significant is its positioning before traditional runtime defenses activate. The compromise occurs during installation and during the build processes, where scripts execute with elevated privileges and minimal scrutiny. This shifts risk into the software lifecycle itself, where trust is inherited rather than proven.

This pattern is not new. Supply chain attacks keep succeeding because the trust model for software execution hasn’t caught up to how attackers operate.

The Impact

  • Developer environments executing attacker-controlled code with elevated privileges.
  • Large-scale credential and secret exfiltration from build systems.
  • Hidden persistence and evasion via kernel-level rootkit capabilities.
  • Rapid downstream propagation through automated dependency and package usage.

What to Watch For

  • Package ownership or maintainer changes without corresponding trust validation.
  • Installation or build scripts invoking external package managers unexpectedly.
  • Software installations triggering outbound network activity during build phases.
  • Developer or CI environments accessing or transmitting credentials during package installation.

A consistent signal is the discontinuity between trust lineage and execution behavior. Code introduced through legitimate repositories begins to exhibit behaviors inconsistent with its original function, particularly during installation or build-time execution. Detection must expand to these phases, where compromise is increasingly initiated.

Zero Trust for Code Value

Zero Trust for Code introduces enforcement at the point of code introduction and execution, ensuring that actions taken during installation, build, and runtime adhere to defined policy constraints. Rather than assuming repository trust or maintainer integrity, it validates whether each action including both script execution and dependency retrieval are aligned with accepted behavior before completion.

This shifts security from static trust inheritance to continuous verification across the software lifecycle, closing the gap between where trust is assigned and where actions occur. By governing not only runtime behavior but also build and ingestion phases, organizations can prevent malicious logic from entering and propagating through trusted environments.

The result is a control model that aligns with how modern software is actually delivered and executed. This provides measurable assurance that trust is not only granted but enforced and verified at every stage.

Zero Trust for Code: Trust but verify.

CISO Action Brief

  • Establish policy controls over installation and build-time script execution, not just runtime activities.
  • Require validation of maintainer identity changes and package ownership transitions
  • Enforce behavioral constraints in development and CI/CD environments.
  • Monitor and restrict outbound communications during software installation and build processes.
  • Prioritize enforcement in developer workstations and build pipelines where trust is most concentrated.

Methodology & Sources

Analysis based on reporting by BleepingComputer (June 12, 2026) on the Arch Linux AUR compromise, research from IFIN and Sonatype on malicious package mechanisms, and CodeHunter Labs evaluation of trust transition risks and build-phase execution vulnerabilities.

Download the PDF

Transportation Industry Software Supply Chain Security: Why Signing and SBOMs Are Not Enough

The transportation industry runs on digital infrastructure. Automated ports, cargo tracking systems, logistics management software, GPS-guided fleets: the efficiency gains from digitization are real, and the dependency is deep. So is the exposure. Cyberattacks targeting transportation do not just disrupt operations. They can affect national security, public safety, and the global movement of goods that other industries depend on. The attack surface is wide, the systems are deeply interconnected, and many of the controls used to govern software trust in this sector were designed for a simpler threat environment than the one that exists today.

Third-Party Vendors Are a Trusted Entry Point for Untrusted Code

Transportation companies rely on third-party vendors for logistics software, cloud services, IoT monitoring, and dozens of other operational dependencies. Each of those relationships is a channel through which software enters the environment, and most of those channels are trusted by default.

The SolarWinds attack in 2020 is the clearest illustration of what that trust assumption costs. Compromising a single software vendor exposed 18,000 organizations downstream, including government agencies, enterprises, and critical infrastructure operators who had all vetted and approved that supplier. The code that delivered the payload was signed. It came through the expected update channel. It passed every control designed to evaluate its origin. What those controls did not evaluate was what the code would do when it was executed. That is the gap Zero Trust for Code is built to close.

OT Systems Carry Unique Execution Risk

The convergence of IT and operational technology in transportation creates a security challenge that generic enterprise controls were not designed to address. Autonomous vehicles, smart port systems, and rail networks all depend on OT that was often built without cybersecurity in mind, is expensive and operationally disruptive to update, and is deeply connected to the physical systems that move people and cargo.

The NotPetya attack in 2017 made the consequences of OT compromise concrete. Maersk’s entire shipping operation was crippled, with an estimated $300 million in losses and operations halted across ports worldwide. That attack entered through IT systems and moved laterally into OT environments. Pre-execution behavioral intent analysis evaluates what code will do before it is deployed, including whether its behavioral capabilities are appropriate for the specific environment where it will execute.

What SBOM and Signing Leave Uncovered in Transportation

Software bill of materials documentation and code signing represent meaningful progress in supply chain governance. An SBOM tells you what components are in the software. Code signing confirms who published it. Neither tells you what those components will do when they execute in your specific environment.

A signed update from a compromised vendor is still a compromised update. An SBOM that accurately lists every dependency still cannot tell you whether those dependencies will attempt to communicate with an external command-and-control server when deployed on a port management system. The control that answers what SBOM and signing leave open is pre-execution behavioral analysis: deconstruct the artifact, surface its behavioral capabilities, and issue a deterministic execution verdict before deployment advances.

The CodeHunter Solution for Transportation

CodeHunter helps transportation organizations span the gap between their existing security controls and the execution of governance those controls do not cover. Our platform automatically evaluates executable artifacts at speed and at scale. Every artifact is evaluated for behavioral intent before it is authorized to execute. The verdict is deterministic: Allow, Block, Contain, or Escalate. The evidence is forensic. The decision is auditable, and it happens before the first operational system is exposed.

Zero Trust for Code does not slow down software deployment in transportation environments. It ensures that what gets deployed has earned the right to execute. Find out how CodeHunter integrates into your existing security stack.