Independent AI systems researchOperated by NeuralArc
How to read this index

A citation is not a transferable result.

Reviewed identifies the part of the source used. Supports states the bounded proposition we draw from it. Retrieved records when time-sensitive material was checked.

Vendor documentation establishes vendor claims and product behavior as documented, not independent performance. Papers establish results only for their stated methods and tested scope. AccessAllGPT recommendations remain labeled analysis.

Read the full methodology →
Source ledger

Evidence by decision guide

Ordered by the latest publication or material update date. Follow a source to inspect the original material.

Agents

MCP Pagination Can Evict Earlier Tool Validators

AccessAllGPT reviewed the current MCP 2026-07-28 pagination and tools specifications, the release record and pinned client implementation for @modelcontextprotocol/sdk 1.30.0, Anthropic’s original MCP announcement, public TypeScript SDK issue 2735 and OWASP’s independent prompt-injection guidance. I wrote and ran scripts/audit-mcp-paginated-tool-cache.mjs on Node v24.10.0 and Darwin arm64 with the official SDK 1.30.0, Zod 3.25.76 and linked in-memory transports. A deliberately nonconforming low-level synthetic server returned two one-tool pages; both tools declared an integer output but returned {value:"not-an-integer"}. Twelve assertions traversed the cursor, inspected both cache states, and compared calls to page-one and page-two tools. The pinned client source was bound to SHA-256 db6cc643f5cc095b2fd0b70bf691d1775f07a317e97555e3928559e815f5e32a. No model, production client, remote server, credential, network target or user data was used.

7 sources · 7 retrieval dates · 7 scoped claim notes
  1. Pagination (version 2026-07-28)

    Model Context Protocol Specification · Retrieved

    Reviewed: Pagination model, response and request formats, supported operations, implementation guidelines and error handling

    Supports: The current protocol uses opaque cursor pagination, lists tools/list as paginated, says clients should support paginated flows and defines a missing nextCursor as the end of results.

  2. Tools (version 2026-07-28)

    Model Context Protocol Specification · Retrieved

    Reviewed: Listing tools, tool definition, output schema, structured content, calling tools and security considerations

    Supports: The current tools contract makes list results paginated and defines optional outputSchema as the contract that successful structuredContent must match.

  3. @modelcontextprotocol/sdk 1.30.0 client implementation

    Model Context Protocol TypeScript SDK · Retrieved

    Reviewed: Client.listTools, cacheToolMetadata, getToolOutputValidator and callTool output-validation implementation

    Supports: The pinned v1 client calls cacheToolMetadata with each page returned by listTools; that method clears existing output validators before compiling validators from that response page.

  4. TypeScript SDK release 1.30.0

    Model Context Protocol on GitHub · Retrieved

    Reviewed: Release identity, branch, publication date and package change record

    Supports: The official release record binds the tested package to SDK version 1.30.0, released July 27, 2026 on the v1.x line.

  5. Client.listTools() silently drops pages when a server repeats a cursor (issue 2735)

    Model Context Protocol TypeScript SDK issue tracker · Retrieved

    Reviewed: Issue report, v2.0.0 reproduction, observed truncation, protocol interpretation and open status

    Supports: A separate public report documents a different pagination failure in the v2 client: repeated opaque cursors can make automatic aggregation stop early. It does not report or validate the v1 validator-cache replacement reproduced here.

  6. LLM Prompt Injection Prevention Cheat Sheet

    OWASP Cheat Sheet Series · Retrieved

    Reviewed: Agent-specific attacks, thought and observation injection, least privilege, tool validation and trust-boundary guidance

    Supports: Independent defensive guidance treats tool output as untrusted content and recommends tool validation plus permission and session-context checks; it does not test MCP pagination or this SDK.

  7. Introducing the Model Context Protocol

    Anthropic · Retrieved

    Reviewed: November 25, 2024 announcement, protocol purpose, architecture, SDKs and ecosystem description

    Supports: Anthropic introduced MCP as an open standard for connecting AI assistants to data sources and tools, establishing why a complete discovered inventory matters to agent clients.

Agents

MCP Output Validation Depends on Tool Discovery

AccessAllGPT reviewed the current MCP 2026-07-28 tools specification and CallToolResult schema, the release record and pinned client/server implementation for @modelcontextprotocol/sdk 1.30.0, Anthropic’s original MCP announcement and OWASP’s independent prompt-injection defensive guidance. I wrote and ran scripts/audit-mcp-output-schema-cache.mjs on Node v24.10.0 and Darwin arm64 with the official SDK 1.30.0, Zod 3.25.76 and linked in-memory transports. A deliberately nonconforming low-level synthetic server advertised an integer score from 0 to 100 but returned {score:"ninety-nine"}. Ten assertions compared a direct call before discovery with the same call after listTools. The pinned client source was bound to SHA-256 db6cc643f5cc095b2fd0b70bf691d1775f07a317e97555e3928559e815f5e32a. No model, production client, remote server, credential, network target or user data was used.

7 sources · 7 retrieval dates · 7 scoped claim notes
  1. Tools (version 2026-07-28)

    Model Context Protocol Specification · Retrieved

    Reviewed: Tool definition, output schema, structured content, calling tools, error handling and security considerations

    Supports: The current protocol defines outputSchema as an optional contract for structuredContent and says a conforming structured result must match that schema; it also separates tool execution errors from protocol errors.

  2. Schema reference: CallToolResult (version 2026-07-28)

    Model Context Protocol Specification · Retrieved

    Reviewed: CallToolResult content, structuredContent, isError and result metadata fields

    Supports: The schema requires structuredContent to be a JSON object when present, but the tool-specific output contract comes from the separately discovered Tool.outputSchema.

  3. @modelcontextprotocol/sdk 1.30.0 client implementation

    Model Context Protocol TypeScript SDK · Retrieved

    Reviewed: Client.callTool, cacheToolMetadata, getToolOutputValidator and listTools implementation

    Supports: The pinned client validates a tool result only when a validator is present in its metadata cache; listTools clears and repopulates that cache from discovered output schemas.

  4. @modelcontextprotocol/sdk 1.30.0 server implementation

    Model Context Protocol TypeScript SDK · Retrieved

    Reviewed: High-level McpServer tool registration, input validation, output validation and callback dispatch

    Supports: The high-level McpServer validates registered tool structuredContent against its configured output schema before returning a successful result; this differs from the deliberately nonconforming low-level fixture used in the client probe.

  5. TypeScript SDK release 1.30.0

    Model Context Protocol on GitHub · Retrieved

    Reviewed: Release identity, tag, publication date and package change record

    Supports: The official release record binds the tested package to SDK version 1.30.0, released July 27, 2026.

  6. LLM Prompt Injection Prevention Cheat Sheet

    OWASP Cheat Sheet Series · Retrieved

    Reviewed: Agent-specific attacks, thought and observation injection, least privilege, tool validation and trust-boundary guidance

    Supports: Independent defensive guidance treats tool output as untrusted content and recommends validating tool calls against user permissions and session context; it does not test this SDK cache behavior.

  7. Introducing the Model Context Protocol

    Anthropic · Retrieved

    Reviewed: November 25, 2024 announcement, architecture, SDKs and ecosystem purpose

    Supports: Anthropic introduced MCP as an open standard for connecting AI assistants to data sources and tools, establishing why discovered tool contracts enter an agent client’s trust boundary.

Agents

MCP’s readOnlyHint Is Not a Permission Boundary

AccessAllGPT reviewed the current MCP 2026-07-28 tools specification and ToolAnnotations schema, the generated types and release record for @modelcontextprotocol/sdk 1.30.0, Anthropic’s original MCP announcement and Invariant Labs’ independent tool-poisoning report. I wrote and ran scripts/audit-mcp-tool-annotations.mjs on Node v24.10.0 and Darwin arm64 using the official SDK 1.30.0, Zod 3.25.76 and its linked in-memory client/server transport. The synthetic tool declared readOnlyHint=true, destructiveHint=false, idempotentHint=true and openWorldHint=false, then wrote one temporary marker on each of two calls. Eleven assertions verified discovery metadata, pre-call state, both responses, both writes and call count. The SDK specification type source was bound to SHA-256 f612706dcbe34de49a77f2458ba4e0ef9e767efffc0f38024e3d84a8f1f66414. No model, production client, external tool, credential, network target or user data was used.

6 sources · 6 retrieval dates · 6 scoped claim notes
  1. Tools (version 2026-07-28)

    Model Context Protocol Specification · Retrieved

    Reviewed: Tool definition, annotations, user interaction model, calling tools and security considerations

    Supports: The current specification defines annotations as optional descriptions of tool behavior and normatively requires clients to consider them untrusted unless they come from trusted servers.

  2. Schema reference: ToolAnnotations (version 2026-07-28)

    Model Context Protocol Specification · Retrieved

    Reviewed: ToolAnnotations fields, defaults and semantic qualifications for read-only, destructive, idempotent and open-world hints

    Supports: The schema defines readOnlyHint, destructiveHint, idempotentHint and openWorldHint as behavioral hints, including defaults and the conditions under which some fields are meaningful.

  3. @modelcontextprotocol/sdk 1.30.0 generated specification types

    Model Context Protocol TypeScript SDK · Retrieved

    Reviewed: ToolAnnotations interface, field comments, trust warning and Tool definition

    Supports: The pinned SDK type declarations say every ToolAnnotations property is a hint, may not faithfully describe behavior, and must not drive tool-use decisions when received from an untrusted server.

  4. TypeScript SDK release 1.30.0

    Model Context Protocol on GitHub · Retrieved

    Reviewed: Release identity, tag, commit, publication date and changed-package record

    Supports: The official release page binds the tested SDK package to version 1.30.0 and tag commit 2d889f2, released July 27, 2026.

  5. MCP Security Notification: Tool Poisoning Attacks

    Invariant Labs · Retrieved

    Reviewed: Threat definition, malicious tool-description example, reported client experiments, limitations and proposed mitigations

    Supports: Independent security researchers reported that malicious instructions in MCP tool descriptions could steer tested agents toward unauthorized reads and actions; this is adjacent threat evidence, not validation of this annotation probe.

  6. Introducing the Model Context Protocol

    Anthropic · Retrieved

    Reviewed: November 25, 2024 announcement, protocol purpose, architecture, SDKs and early ecosystem description

    Supports: Anthropic introduced MCP on November 25, 2024 as an open standard connecting AI assistants to data sources and tools, establishing the chronology and intended AI integration boundary.

Agents

npm ci --ignore-scripts Still Installs Runnable Package Binaries

AccessAllGPT reviewed npm CLI v11 ci and package.json bin documentation, npm 11.6.0 ci source, bundled @npmcli/arborist 9.1.4 source and the independent OpenSSF Package Analysis design. I wrote and ran scripts/audit-npm-ci-ignore-scripts-bin-links.mjs on Node v24.10.0, npm 11.6.0 and Darwin arm64. The audit bound installed source to SHA-256 digests 76cacc0ed9bbee8a7c1e5d5656201403a4dd688d31ee141b531c9e85a7e75e9e and 0915a24508d04986869407f80ef6f793a85abd1a4785e27b4029efcb7f4921dd, packed one synthetic local dependency, created a frozen lockfile, compared three fresh npm ci flows, explicitly invoked only the synthetic binary, and passed 20 assertions over hook markers, package files, symlink targets and invocation output. No registry package executable, external service, exploit, network access or publication was used.

5 sources · 5 retrieval dates · 5 scoped claim notes
  1. npm ci documentation, CLI v11

    npm Docs · Retrieved

    Reviewed: Description, clean-install guarantees, lockfile requirements, ignore-scripts and bin-links configuration

    Supports: npm documents ci as a lockfile-frozen clean install and lists ignore-scripts and bin-links as separate configuration controls; ignore-scripts suppresses package.json scripts while bin-links governs executable links.

  2. package.json bin field documentation, CLI v11

    npm Docs · Retrieved

    Reviewed: bin field mapping, executable files, local installation links and shebang requirement

    Supports: npm documents that local installs create links in node_modules/.bin for package bin entries so commands can be run by npm scripts and other callers.

  3. npm 11.6.0 ci command implementation

    npm CLI source · Retrieved

    Reviewed: Accepted configuration, lockfile validation, node_modules removal, Arborist reify dispatch and root lifecycle guard

    Supports: The pinned command accepts ignore-scripts and bin-links independently, passes flat options to Arborist reify, and uses ignore-scripts to guard root lifecycle events after dependency reification.

  4. Arborist 9.1.4 rebuild implementation bundled with npm 11.6.0

    npm CLI source via unpkg · Retrieved

    Reviewed: Early return, build queues, lifecycle guards, binLinks branch, package metadata inspection and executable linking

    Supports: The implementation queues bins and lifecycle events together but guards them separately: ignoreScripts gates lifecycle execution while binLinks gates #linkAllBins.

  5. OpenSSF Package Analysis README at commit c5c4500

    Open Source Security Foundation · Retrieved

    Reviewed: Project purpose, behavioral signals, architecture, sandboxing and captured process and network data

    Supports: Independent ecosystem infrastructure treats commands, file access and network destinations as behaviors worth observing and dynamically analyzes packages in isolated gVisor containers; it does not test this npm fixture or establish maliciousness.

Agents

npm --ignore-scripts Is Not a Lasting Quarantine

AccessAllGPT reviewed npm CLI v11 rebuild and lifecycle documentation, npm 11.6.0 rebuild source, bundled @npmcli/arborist 9.1.4 source and an independent historical supply-chain paper. I wrote and ran scripts/audit-npm-rebuild-after-ignore-scripts.mjs on Node v24.10.0, npm 11.6.0 and Darwin arm64. The audit bound installed source files to SHA-256 digests 8a4616e70380702f7fd5c76fc9e9fd7f3e10683bdd12fd643a83c65a8d6fbcad and 0915a24508d04986869407f80ef6f793a85abd1a4785e27b4029efcb7f4921dd, packed only a synthetic local dependency, compared three fresh install/rebuild flows, and passed 14 assertions over hook traces, lockfile metadata and source control flow. No registry dependency script, external service, exploit, network exfiltration or publication was used.

5 sources · 5 retrieval dates · 5 scoped claim notes
  1. npm rebuild documentation, CLI v11

    npm Docs · Retrieved

    Reviewed: Description, synopsis, lifecycle behavior, package selection and ignore-scripts configuration

    Supports: npm documents rebuild as running matching lifecycle scripts for installed packages and exposes ignore-scripts as a command configuration, not as persisted package approval state.

  2. npm scripts documentation, CLI v11

    npm Docs · Retrieved

    Reviewed: Life cycle scripts, dependencies, working directory and npm rebuild operation order

    Supports: npm documents preinstall, install and postinstall as the lifecycle order for npm rebuild and explains that scripts run from the package root.

  3. npm 11.6.0 rebuild command implementation

    npm CLI source · Retrieved

    Reviewed: Accepted configuration, Arborist option construction, package-spec matching and rebuild dispatch

    Supports: The pinned command accepts ignore-scripts, passes current flat options into Arborist and invokes rebuild over the selected installed nodes; it does not read a previous install command or persisted approval record.

  4. Arborist 9.1.4 rebuild implementation bundled with npm 11.6.0

    npm CLI source via unpkg · Retrieved

    Reviewed: Default-node loading, build queues, ignoreScripts guards, package metadata refresh and lifecycle execution

    Supports: The implementation discovers scripts from installed package metadata, queues preinstall/install/postinstall, and suppresses those queues only when the current rebuild options set ignoreScripts.

  5. Backstabber's Knife Collection: A Review of Open Source Software Supply Chain Attacks

    DIMVA preprint on arXiv · Retrieved

    Reviewed: Abstract, historical malicious-package dataset, attack-tree scope and execution-stage framing

    Supports: Independent researchers documented historical malicious packages and code-execution opportunities across package ecosystems; this is risk context, not validation of npm 11.6.0 or the synthetic experiment.

Agents

npm pack --dry-run Still Executes Package Scripts

AccessAllGPT reviewed npm CLI v11 pack and scripts documentation, npm 11.6.0 pack source, bundled libnpmpack 9.0.7 source and an independent historical supply-chain paper. I wrote and ran scripts/audit-npm-pack-dry-run.mjs on Node v24.10.0, npm 11.6.0, Darwin arm64. The audit bound installed source with SHA-256 digests 7580758d2fd46c6d3998f72ad623e93e91be3f8ce1893c9c914ec4b147874de5 and 665eeb6479829e1c21699e55476edf7b020da3aac12e73d8bcf2a69c0a33951a, created only a synthetic local package, ran normal, dry-run and ignore-scripts pack modes, and passed 13 assertions over hook order, filesystem writes and reported file lists. No registry package lifecycle script, publish operation, network exfiltration or exploit was attempted.

5 sources · 5 retrieval dates · 5 scoped claim notes
  1. npm pack documentation, CLI v11

    npm Docs · Retrieved

    Reviewed: Synopsis, dry-run, ignore-scripts and description sections for npm pack

    Supports: npm documents dry-run as reporting what pack would do without making changes, and documents ignore-scripts as preventing package.json scripts from running.

  2. npm scripts documentation, CLI v11

    npm Docs · Retrieved

    Reviewed: Life cycle operation order plus prepare, prepack and postpack definitions

    Supports: npm documents prepack and prepare before tarball generation and postpack after generation; prepare has run during npm pack since npm 4.

  3. npm 11.6.0 pack command implementation

    npm CLI source · Retrieved

    Reviewed: Pack command parameters, manifest resolution, libnpmpack invocation and output path

    Supports: The command forwards flat options, including dry-run and ignore-scripts, into libnpmpack and then reports the generated tarball metadata.

  4. libnpmpack 9.0.7 pack implementation bundled with npm 11.6.0

    npm CLI source · Retrieved

    Reviewed: Directory-script guards, tarball creation, dry-run write guard and postpack execution order

    Supports: The pinned implementation gates prepack and postpack on ignoreScripts, delegates tarball creation between them, and uses dryRun only to decide whether the completed tarball buffer is written to disk.

  5. Backstabber's Knife Collection: A Review of Open Source Software Supply Chain Attacks

    DIMVA preprint on arXiv · Retrieved

    Reviewed: Abstract, historical package-registry attack corpus, supply-chain stages and stated scope

    Supports: Independent researchers documented historical malicious packages and execution opportunities in package ecosystems; this supplies bounded risk context, not evidence about npm pack 11.6.0 or the synthetic fixture.

Agents

A pnpm Build Approval Can Outlive the Version You Reviewed

AccessAllGPT reviewed pnpm 10.0.0, 10.1.0, 11.23.0 and 11.24.0 release records; the current approve-builds documentation; pnpm 11.24.0 source at commit cef4816dfbc9aa7ffbe67fa727c1eb9be5d5e1e7; and an independent historical supply-chain paper. The registry reported pnpm 11.24.0 with integrity sha512-vSfjRel23LC+C3oSKCF7BJqBfiGx81XJDb59xGZxiVqLwebQbCRVRQXqk+oLRfSJon7Bv7yN5qlln8oPFvoAAA==. I wrote and ran scripts/audit-pnpm-allow-builds-policy.mjs on Node v24.10.0, Darwin arm64. It fetched two commit-pinned source files, verified SHA-256 digests b0fcc6a8364c02f384115869030b51dc4643c2a7649eb2b869a05b760589079d and b4a931881f1b5c28689c47dad109e4c4e84e788c8eb63802b63cf58f196bb0bf, asserted the relevant matching branches, and exercised a six-row policy matrix with 12 passing assertions. The matrix is a source-level reproduction of the matching algorithm, not an end-to-end package installation or security exploit.

7 sources · 7 retrieval dates · 7 scoped claim notes
  1. pnpm v10.0.0 release notes

    pnpm project · Retrieved

    Reviewed: Major change that stopped dependency lifecycle scripts by default, onlyBuiltDependencies migration example and security motivation

    Supports: pnpm 10.0.0 was released on 2025-01-07 and changed dependency lifecycle scripts to blocked by default, with named-package exceptions through onlyBuiltDependencies at that time.

  2. pnpm v10.1.0 release notes

    pnpm project · Retrieved

    Reviewed: Release timestamp and additions of ignored-builds, approve-builds and ignoredBuiltDependencies

    Supports: pnpm 10.1.0 was released on 2025-01-26 and introduced commands for listing ignored builds and interactively approving dependencies whose install scripts may run.

  3. pnpm approve-builds documentation (versions 11 and 12)

    pnpm project · Retrieved

    Reviewed: Command purpose, positional approval and denial syntax, allowBuilds writes, pending placeholders and pnpm 11 migration behavior

    Supports: The command records approved package names as true and denied names as false in allowBuilds; pnpm 11 replaced and ignores several pnpm 10-era build-policy settings.

  4. pnpm v11.23.0 release notes

    pnpm project · Retrieved

    Reviewed: Release date and allowBuilds migration cleanup described for approve-builds

    Supports: pnpm 11.23.0 was released on 2026-08-23 and made approve-builds remove obsolete pnpm 10 build-policy keys when writing allowBuilds.

  5. pnpm v11.24.0 release notes

    pnpm project · Retrieved

    Reviewed: Release date, global build approvals and package-manager release scope

    Supports: pnpm 11.24.0 was released on 2026-08-24 and restored global build approvals; the registry also identified 11.24.0 as latest during this investigation.

  6. pnpm 11.24.0 build-policy and version-policy implementation

    pnpm project source · Retrieved

    Reviewed: createAllowBuildFunction precedence, package-name and name-at-version matching, identity trust, ignored-build key generation and exact-version expansion dependency

    Supports: The pinned implementation checks exact denials before approvals, then accepts either a bare package name or an exact name@version; ignored registry builds are proposed under the bare package name.

  7. Backstabber's Knife Collection: A Review of Open Source Software Supply Chain Attacks

    DIMVA preprint on arXiv · Retrieved

    Reviewed: Abstract, dataset scope, supply-chain stages and limitations of the historical collection

    Supports: The independent authors report a manually collected historical dataset of malicious npm, PyPI and RubyGems packages and distinguish code execution at multiple supply-chain stages; it provides context, not a pnpm 11 evaluation.

Agents

npm 12 Blocks Dependency Scripts—But a Git Dependency Still Ran prepare

AccessAllGPT reviewed npm 12.0.0 release notes, npm 12.0.2 documentation, the pacote GitFetcher source bundled in the npm 12.0.2 registry tarball, open npm issue #9783 and the independent DIMVA supply-chain preprint. I built a synthetic local Git repository pinned to commits d886768c94acb3f9fa3104645d2e294e22bb31af and d40165addbb4c8ab3df8a6cf35981657786f9d60. Its prepare hook wrote built.txt and appended its temporary working directory, process version and executable to an external trace. Baseline runs used Node v24.10.0 with npm 11.6.0. npm 12 runs used npm 12.0.2 with its supported Node v24.15.0 binary through npx. I tested default npm 12 policy, --allow-git=all without allowScripts, and npm 11 --ignore-scripts. No production package, remote repository, credential, exploit payload or private system was used. The npm 12 tarball integrity returned by the registry was sha512-uIXokLlBj6FpNUTQX1PmT5pz7BlIN9QlixX+zdaSNHsd0qUXsbDLr50xzY6Sw7cJVr0uzHKDOle0swmPW/p5Qw==.

6 sources · 6 retrieval dates · 6 scoped claim notes
  1. npm CLI v12.0.0 release notes

    npm CLI project · Retrieved

    Reviewed: Release date, breaking changes for allow-git, allow-remote, supported Node versions and dependency lifecycle scripts

    Supports: npm 12.0.0 was released on 2026-07-08 and changed git and remote dependency fetching plus dependency-script policy: git fetches require an explicit allowance and dependency scripts are blocked unless covered by the root allowScripts policy.

  2. package.json: Git URLs as Dependencies (npm CLI 12.0.2)

    npm documentation · Retrieved

    Reviewed: Git URL grammar, commit-ish resolution and the documented temporary clone, dependency install, script, pack and install flow

    Supports: npm documents that selected scripts or workspaces make a git dependency a build input: npm clones it into a temporary directory, installs its dependencies, runs relevant scripts, then packs and installs the result.

  3. Config: allow-scripts and ignore-scripts (npm CLI 12.0.2)

    npm documentation · Retrieved

    Reviewed: allow-scripts matching and scope, project allowScripts policy, override behavior and ignore-scripts semantics

    Supports: npm describes allow-scripts as covering dependency install-time hooks including prepare for non-registry dependencies, while ignore-scripts suppresses package.json scripts except explicitly invoked script commands.

  4. pacote GitFetcher implementation bundled with npm 12.0.2

    npm CLI project · Retrieved

    Reviewed: GitFetcher constructor, #prepareDir, temporary clone and tarballFromResolved implementation paths

    Supports: The bundled GitFetcher checks ignoreScripts before spawning npm inside the temporary clone, but the inspected #prepareDir path does not evaluate the root allowScripts policy before that preparation install and pack flow.

  5. Issue #9783: allow-scripts forwarded to git-dependency preparation

    npm CLI issue tracker · Retrieved

    Reviewed: Issue title, reproduction context, open state, creation date and latest activity visible through the GitHub API

    Supports: An independently filed open issue documents a neighboring npm 12 git-preparation and allow-scripts interaction. It is corroborating community evidence, not proof of the exact local result reported here.

  6. Backstabber's Knife Collection: A Review of Open Source Software Supply Chain Attacks

    DIMVA preprint on arXiv · Retrieved

    Reviewed: Abstract, dataset scope, submission history and stated supply-chain attack model

    Supports: The authors report a manually collected dataset of 174 malicious packages from npm, PyPI and RubyGems dated 2015–2019 and model code execution at different supply-chain stages; this supplies historical independent context, not an npm 12 measurement.

Agents

npm Install Is an Execution Boundary

AccessAllGPT source review of the current npm scripts documentation, Node.js permission documentation, the Node.js threat model and NIST AI 600-1, plus a bounded local reproduction on Node v24.10.0 and npm 11.6.0 on macOS 26.0.1. In a temporary sandbox, I created a file dependency with preinstall, install and postinstall hooks that append to a trace file, ran npm install, confirmed the three hook lines were written, then reran the install with --ignore-scripts and confirmed the trace stayed empty. I did not audit a production package, publish a malicious package, analyze a real exploit chain or find a third-party write-up reproducing this exact local probe.

4 sources · 4 retrieval dates · 4 scoped claim notes
  1. Scripts | npm Docs

    npm · Retrieved

    Reviewed: Description, Life Cycle Operation Order, Exiting and Working Directory for Scripts

    Supports: npm says lifecycle scripts run after package changes are applied, lists preinstall, install and postinstall in order, and documents that scripts are executed through /bin/sh on POSIX systems or cmd.exe on Windows.

  2. Permissions — Node.js documentation

    Node.js project · Retrieved

    Reviewed: Permissions overview, child-process and filesystem controls, known limitations and security notes

    Supports: Node’s permission model narrows selected runtime capabilities but does not claim to sandbox malicious code. That makes shell execution and package hooks a separate authority question, not a Node-only flag choice.

  3. Security policy and threat model

    Node.js project · Retrieved

    Reviewed: The Node.js threat model section and its statement about trusted versus untrusted code

    Supports: The Node project’s threat model says the runtime trusts the code it is asked to run and that dependencies inherit the execution user’s privileges. That is the right backdrop for treating npm hooks as code execution, not as inert metadata.

  4. Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile (NIST AI 600-1)

    National Institute of Standards and Technology · Retrieved

    Reviewed: Publication abstract, scope, citation and report metadata

    Supports: NIST frames AI trustworthiness as a design, development, use and evaluation problem. That general control framing supports least-privilege package installation, evidence logging and explicit rollback for agentic systems.

Agents

MCP Token Passthrough Needs an Audience Boundary

AccessAllGPT desk review of the current MCP security best practices, MCP authorization and tools specifications, RFC 8707, RFC 9728 and RFC 9700, plus a bounded local loopback reproduction on Node v24.10.0 that relays a synthetic Authorization header from one local HTTP server to another. We verified the public pages were reachable on 2026-08-22, but did not audit a production MCP implementation, a cloud auth server or any third-party deployment. The local probe demonstrates authority propagation through a relay, not a defect in MCP itself.

6 sources · 6 retrieval dates · 6 scoped claim notes
  1. Security Best Practices (version 2026-07-28)

    Model Context Protocol · Retrieved

    Reviewed: Token passthrough risks, local MCP server compromise, SSRF risks and common mistakes

    Supports: The MCP security guidance explicitly frames token passthrough as risky, warns about local server compromise, and treats SSRF and token handling as security concerns for MCP deployments.

  2. Authorization (version 2026-07-28)

    Model Context Protocol Specification · Retrieved

    Reviewed: Resource parameter implementation, canonical server URI, access token usage and token handling

    Supports: The authorization spec requires servers to validate that access tokens were issued specifically for them as the intended audience and describes the resource-oriented discovery flow that anchors the authorization relationship.

  3. Tools (version 2026-07-28)

    Model Context Protocol Specification · Retrieved

    Reviewed: Security considerations and user interaction model for tool exposure

    Supports: The tools specification emphasizes that tool exposure and invocation are security-sensitive, which matters when a server can forward user credentials to another service or trigger privileged actions on a user’s behalf.

  4. Resource Indicators for OAuth 2.0 (RFC 8707)

    RFC Editor · Retrieved

    Reviewed: Resource parameter, audience restriction and threat model

    Supports: RFC 8707 defines resource indicators so the client can ask for a token for a specific protected resource instead of receiving a bearer token that is broadly reusable across a service fleet.

  5. OAuth 2.0 Protected Resource Metadata (RFC 9728)

    RFC Editor · Retrieved

    Reviewed: Protected resource metadata and security considerations

    Supports: RFC 9728 standardizes resource metadata discovery so clients can learn which authorization server and token endpoints belong to a protected resource instead of inventing token-routing rules ad hoc.

  6. Best Current Practice for OAuth 2.0 Security (RFC 9700)

    RFC Editor · Retrieved

    Reviewed: Audience-restricted access tokens, token leakage and metadata attacks

    Supports: RFC 9700 elevates audience-restricted tokens and related countermeasures as best current practice because bearer tokens are dangerous when they can be replayed or forwarded beyond their intended recipient.