Decision RecordActivePublished without chair review
CRT-2026-043528 Oct 2026AFTERNOON EDITIONDaily Roundtable
Contain compromised npm publishing workflows
Freeze affected releases and artifact promotions, suspend credentials available to implicated runners, invalidate suspect caches, inspect lifecycle-hook execution, and rebuild on clean ephemeral runners from reviewed commits and lockfiles. Do not impose a blanket freeze on unrelated npm builds.
Current public guidance · the full record
What to do now
At a glanceThe edition's authoritative action board carries no action for this record's subjects — no What to do now guidance.
Why now
WeakThe 28 October 2026 Roundtable material shows that valid npm provenance was not a sufficient safety boundary for Shai-Hulud: a legitimate TanStack-related publishing workflow could produce packages after untrusted pull-request activity influenced a cache used by a privileged release job.
That makes continued release promotion risky wherever the same cache, runner, dependency path, lifecycle-hook execution, or accessible credentials remain in use.
Immediate scoped containment limits further artifact production and credential exposure while preserving unrelated npm builds that have no demonstrated connection to the compromised path.
Who is affected
Under reviewAffected populations are: (1) operators of TanStack-related npm publishing workflows in which untrusted pull-request activity could influence a cache later consumed by a privileged release job with id-token: write; their releases can carry valid npm provenance despite the earlier compromise; (2) maintainers of runners and jobs that could read publishing credentials or OIDC material, because those credentials may require suspension, rotation, or use review; (3) owners and consumers of releases and derived artifacts produced through implicated workflows, caches, dependencies, or npm lifecycle hooks, because those artifacts require reconstruction and clean rebuilding; and (4) security and build-platform teams responsible for lockfiles, workflow logs, cache identifiers, package-manager records, and process telemetry needed to establish scope.
Unrelated npm workflows without a demonstrated connection to those paths are outside the freeze. The packet does not identify exact affected package versions or integrity hashes.
What supports this
Partially supported- The supply-chain analyst's 28 October 2026 analysis supports the decision by showing that legitimate TanStack-related publishing infrastructure produced packages with valid npm provenance after an earlier trust boundary failed: untrusted pull-request activity could influence a cache consumed by a privileged release workflow with
id-token: write. It also reports that malicious code read runner memory to obtain an OIDC token. - The decision scout's evidence synthesis supports containment at privileged cache reuse, npm lifecycle-hook execution, stale dependency records, and credentials accessible to affected jobs rather than at provenance verification alone.
- The first evidence-auditor assessment supports freezing affected publishing workflows and derived artifacts, suspending or rotating credentials available to implicated jobs, invalidating suspect caches, reviewing lifecycle-hook execution, and rebuilding from reviewed commits and lockfiles. It contradicts a blanket freeze of unrelated npm builds.
- The second evidence-auditor assessment qualifies that support with an evidence gap: the packet does not identify the exact versions, hashes, cache lineage, execution windows, runners, or credentials in local scope. It supports using authoritative indicators and local telemetry before applying or lifting the freeze.
How the Roundtable reached this
Under reviewThe supply-chain analyst identified the failed trust boundary: untrusted pull-request activity could influence a cache later consumed by a privileged TanStack-related release workflow with id-token: write.
Valid npm provenance therefore did not establish that the resulting code was benign. The decision scout translated that mechanism into scoped containment of implicated workflows, caches, credentials, and derived artifacts.
The evidence auditor supported those actions but identified a central gap: the packet does not determine which local releases, runners, caches, or credentials are affected.
The Roundtable resolved that uncertainty by requiring local lockfiles and telemetry to define scope instead of freezing every npm build. The boundary reviewer found that this guidance could be shared without exposing private indicators.
The linker found no prior record, and the arbiter selected a new operational-action record.
Positions are generated by AI specialist personas and chaired by Halil Öztürkci.
Panel composition
- Scout (AI panel role)Scout identified 9 candidate signals.
- Linker (AI panel role)Linker evaluated 9 relation judgments.
- Evidence Auditor (AI panel role)Evidence Auditor recorded 26 evidence signals; 16 gaps.
- Prediction Steward (AI panel role)Prediction Steward accepted 0 predictions and rejected 2 claims.
- Boundary Reviewer (AI panel role)Boundary Reviewer recorded 15 public/private findings.
- Arbiter (AI panel role)Arbiter produced 9 decision envelopes.
Key disagreement
Scout (AI panel role)
Exact malicious versions, hashes, cache lineage, execution windows, and credential exposure remain organization-specific. A manifest entry, download, or stale inventory match alone does not prove payload execution. | Merged related signal (candidate-6): How should enterprises prioritize the Apple CoreGraphics vulnerability on devices remaining on the affected operating-system branch? | Merged related signal (candidate-7): Should defenders create a new AI-malware response track for CyberStrikeAI or hunt its underlying intrusion behaviors?
Arbiter outcome
Arbiter outcome: new decision record. The packet strongly supports a scoped containment and clean-rebuild decision for compromised npm publishing workflows, and no existing record was found.
Candidates considered
Considered 9 candidates · opened 1 · 8 not opened (8 other)
Considered, not opened
Sign in to preview Considered-Not-Opened entries (moves to Pro at launch).
Sign in to preview practitioner entries.
What is uncertain
MissingThe exact malicious package versions, integrity hashes, cache lineage, execution windows, affected runners, and exposed credentials remain unresolved.
A package manifest entry, download record, or stale inventory match does not by itself show that malicious code or an npm lifecycle hook executed.
The packet explains the Shai-Hulud compromise path but cannot establish which local deployments followed that path without workflow logs, lockfiles, cache identifiers, package-manager records, and process telemetry.
What evidence is missing
MissingThe packet lacks authoritative package and repository indicators that identify the exact malicious versions and integrity hashes.
It also lacks each operator's cache lineage, workflow execution windows, runner history, credential-access records, lockfiles, package-manager records, and process telemetry.
Those records are required to determine which releases and artifacts were derived from an implicated workflow, whether npm lifecycle hooks executed, which caches crossed from untrusted pull-request activity into privileged release jobs, and which credentials were accessible.
What would change this
Under reviewBroaden the freeze if authoritative indicators or local telemetry show that additional workflows reused a suspect cache, ran an implicated dependency or lifecycle hook, shared an implicated runner, or exposed credentials to the affected jobs.
Narrow or lift containment when reconstructed lockfiles, workflow logs, cache identifiers, package-manager records, and process telemetry exclude those paths, affected artifacts have been rebuilt on clean ephemeral runners, and credential review is complete.
Reassess the mechanism if primary package or repository evidence identifies a different compromise path or contradicts the reported cache, lifecycle-hook, runner-memory, or credential exposure chain.
What to watch next
Under reviewWatch for authoritative Shai-Hulud package names, malicious versions, integrity hashes, and repository indicators.
In local telemetry, monitor for cache identifiers reused between untrusted pull-request jobs and privileged publishing jobs, unexpected npm lifecycle-hook execution, resolved dependencies that differ from reviewed lockfiles, suspicious processes spawned during installation or release, and credential or OIDC activity from implicated runners.
Expand containment when any of those records connect another workflow or artifact to the compromised path. Lift a release freeze only after dependency reconstruction, clean rebuilding, and credential review remove that connection.
Evidence basis
Reachability—not the headline severity—is now the decisive boundary across these cases. For Brotli CVE-2026-111497, an embedded vulnerable version is insufficient by itself: the component must be loaded, untrusted Brotli data must reach the…
Summary: Reachable PHP2Shell deployments are tonight’s clearest containment priority: CISA’s KEV action identifies CVE-2026-109618 and CVE-2026-109619 as actively exploited and imposed a three-day federal remediation deadline. Brotli CVE-20…
Public value history
- 28 Oct 2026Initial public guidanceCurrent guidance
Created the first public value version for this Decision Record.
Source RoundtableAfternoon roundtableConvened 28 Oct 2026Methodology
How the panel reaches a Public Decision Record.