---
title: The attack surface moved into the AI supply chain
description: Two malicious packages posed as document tools for AI agents and collected secrets, a critical identity flaw let attackers steal sessions, and the threat intelligence meant to catch it can filter itself blind.
canonical: https://hangingcontext.com/stories/2026-11-09/ai-supply-chain-attack-surface/
last-updated: 2026-11-09
url: https://hangingcontext.com/stories/2026-11-09/ai-supply-chain-attack-surface/
published: 2026-11-09T12:40:06Z
edition: 2026-11-09T12
newsroom: artificial-intelligence
beat: developers
trust: confirmed
source_count: 3
cited_manifest_ids: ['1794218967589140543', '1794144915020924335', '1794220741180147388']
---

# The attack surface moved into the AI supply chain

*Two malicious packages posed as document tools for AI agents and collected secrets, a critical identity flaw let attackers steal sessions, and the threat intelligence meant to catch it can filter itself blind.*

Confirmed · 3 Manifests · Artificial Intelligence · Published 2026-11-09 12:40 UTC

## Key facts

- Two npm packages, @ifasn/mmdd-doc-mcp and @ifasn/ms-doc-mcp, were assessed malicious by Knostic; both were published on 3 November 2026. (self-reported) [cites: 1794218967589140543]
- @ifasn/mmdd-doc-mcp tries to send collected reports to 121.199.24.94 in the URL of a plain HTTP GET request. (self-reported) [cites: 1794218967589140543]
- The OpenAM session-token disclosure flaw is rated CVSS 10.0; the fix is OpenAM 16.1.4, released 22 October 2026. (self-reported) [cites: 1794144915020924335]
- ScreenConnect was the product named most among 23 confirmed remote monitoring and management abuse cases in Elastic's November 2026 research. (self-reported) [cites: 1794220741180147388]
- No public proof of concept exists for the OpenAM flaws. (self-reported) [cites: 1794144915020924335]

## Malicious packages in the agent's toolbox

Knostic researchers found two malicious npm packages that pose as document tools for AI agents: @ifasn/mmdd-doc-mcp and @ifasn/ms-doc-mcp, both published to the npm registry on 3 November 2026. Knostic assessed both as malicious. The company's AgentMesh scanner had rated mmdd-doc-mcp Dangerous, which prompted the review. [cites: 1794218967589140543]

The mmdd package gathers process information, including command lines that may contain secrets, checks the cloud metadata service, and tries to send a report over plain HTTP to 121.199.24.94. It captures command-line arguments containing 'password', 'secret' or 'jasypt'. Its file header falsely claims no network reporting. The ms-doc package records the full values of environment variables with secret-like names and writes them to stderr and a local file. Knostic found no code in ms-doc-mcp that transmits the collected report to an external server, and no path from its outputs to the publisher was established — but the secrets are still logged, and the advice is the same: remove both packages and rotate any secrets that may have been exposed. [cites: 1794218967589140543]

## Stolen sessions at the identity layer

The second thread is an identity flaw, not an AI flaw — but it sits underneath the systems agents log into. OpenAM versions before 16.1.4 carry three critical vulnerabilities under CVE-2026-123551. The SAML bypass occurs because OpenAM accepts unsigned SAML assertions on ECP and HTTP-Artifact bindings, and a self-registration flaw lets an anonymous user join an administrative group. The token disclosure flaw is rated CVSS 10.0; the other two are rated 9.3. [cites: 1794144915020924335]

> **From Synorb** — Run the cited Manifests yourself. Every claim in this paper points to a Manifest id. Get a Synorb Key and read the Manifests behind it. The 72 Hour Agent Demo key needs no email. It lasts 72 hours and can pull up to 25 Manifests. It includes 5 Beacons; all of them are starter Beacons. [Get a key](https://synorb.com/connect/start)


The mechanism is a small configuration error with large consequences. The notification WebSocket flaw allows token theft because the security filter was incorrectly mapped to request dispatches only, and internal forwards to /notifications bypass the security filter. The fix is OpenAM 16.1.4, released on 22 October 2026, and the mitigations are to require signed assertions, restrict the notifications WebSocket to policy-agent hosts, and disable self-registration in every realm. No public proof of concept exists, and the flaws were not in the CISA known-exploited-vulnerabilities catalog as of 8 November. [cites: 1794144915020924335]

## The threat intel you never see

The third thread is about the tooling meant to catch all of this. Broad exclusions in dark-web threat intelligence queries create blind spots: "Excluding a software name from a dark web search can remove the posts your analysts need." Remote access software shows up both in support discussions and in offers to sell unauthorised access to a system — exclude the name and both disappear. [cites: 1794220741180147388]

The case study is ScreenConnect. Elastic research published on 4 November 2026, based on confirmed intrusions from April to September 2026, found ScreenConnect was the product named most among 23 confirmed remote monitoring and management abuse cases. In Webz.io's Cyber API, the NOT operator excludes a term and unprefixed terms match both post text and thread titles, so a broad exclusion acts on more than the text the analyst meant to omit — and thread handling in collectors can lose matching replies as well. The advice is to test exclusions against synthetic records, keep the reason for each exclusion with the query version and reviewer, and check query exclusions and thread restrictions separately, since fixing one does not guarantee the whole conversation reaches the analyst. [cites: 1794220741180147388]

## What is still unresolved

- No confirmation of actual victims or successful data delivery from the two npm packages.
- No indicators of compromise have been published for the OpenAM flaws.
- Failed OpenAM exploitation attempts may leave no trace in logs.
- The Webz.io article offers no specific alternative query syntax for filtering noise without losing critical data.

## Decision card

- **Useful for:** AI developers installing agent tools and MCP servers; Security teams running identity and threat-intelligence tooling
- **Not for:** Installing MCP packages from the registry without checking what they collect; Assuming a trusted product name is safe to exclude from threat monitoring
- **Compare against:** Your installed MCP package list against the two named packages; OpenAM version against the 16.1.4 fix

## Provenance ledger

| Manifest id | Title | Source | Claims used | Published |
|---|---|---|---|---|
| `1794218967589140543` | More Than Markdown: Hidden Data Collection in Two MCP Packages | [knostic-blog](https://knostic.ai/blog/more-than-markdown-hidden-data-collection-in-two-mcp-packages) | 1794219188503140982, 1794219188520140990, 1794219188512140987, 1794219188524140991, 1794219188506140983, 1794219188507140984, 1794219188509140985, 1794219188510140986, 1794219188514140988, 1794219188515140989 | 11-09 00:00 |
| `1794144915020924335` | OpenAM Session Token Theft and SAML Bypass (CVE-2026-123551) | [ostorlab-research](https://blog.ostorlab.co/openam-session-token-theft-saml-bypass-cve-2026-123551.html) | 1794145681377925257, 1794145681381925259, 1794145681389925263, 1794145681373925256, 1794145681383925260, 1794145681387925262, 1794145681379925258, 1794145681385925261, 1794145681392925265, 1794145681391925264, 1794145681396925267, 1794145681398925268, 1794145681400925269 | 11-08 00:00 |
| `1794220741180147388` | Dark Web Threat Intelligence: When A Trusted Tool Becomes A Blind Spot | [webz-io-blog](https://webz.io/blog/dark-web-api/dark-web-threat-intelligence-trusted-tool-exclusions) | 1794220984959148360, 1794220984952148356, 1794220984955148357, 1794220984956148358, 1794220984958148359, 1794220984960148361, 1794220984962148362, 1794220984964148363, 1794220984965148364, 1794220984968148366, 1794220984969148367, 1794220984970148368 | 11-09 00:00 |

## Run these Manifests yourself

Every Manifest cited here can be read in full with your own Synorb Key. Check the claims before you rely on them.

1. **Get a Synorb Key.** Click Generate Free Agent Key at https://synorb.com/connect/start, or let your agent make a key: MCP tool `synorb-get-demo-key` (no header needed), or REST `POST https://api.synorb.com/api/connect/demo-key` with a JSON body such as `{"client":"your-agent-name"}`. The key is the `api_key` field of the answer. Save the key. The 72 Hour Agent Demo key needs no email. It lasts 72 hours and can pull up to 25 Manifests. It includes 5 Beacons; all of them are starter Beacons.
2. **Read each cited Manifest by id.** REST: `GET https://api.synorb.com/manifests/by-id/{manifest_id}` with the header `Authorization: Bearer <your Synorb Key>`. Ids are strings; do not parse them as numbers. The reply holds the source, the Signal (claims) and the Brief.
3. **Check the claim.** Match each sentence in the story to the claims in the Manifest it cites. The claim ids in the ledger point to them.

Cited Manifest ids:

- `1794218967589140543`
- `1794144915020924335`
- `1794220741180147388`

```sh
for id in 1794218967589140543 1794144915020924335 1794220741180147388; do
  curl -s -H "Authorization: Bearer $SYNORB_KEY" "https://api.synorb.com/manifests/by-id/$id"
done
```

> **From Synorb** — Connect your agent over MCP. Add https://mcp.synorb.com/mcp to your agent, then call the tool synorb-get-demo-key if it has no key yet. It needs no email and no form. Keys are free for 72 hours, and new keys are limited per network. [How to connect](https://synorb.com/connect/start)

## Related stories

- [Your agents plug into servers nobody watches. The trust layer is catching up](https://hangingcontext.com/stories/2026-11-10/mcp-trust-problem/)
- [Agents drift past their permissions in nearly half of frontier runs, and vendors are building the brakes](https://hangingcontext.com/stories/2026-11-10/authorization-drift-measured/)
- [The exploit is already live: Flowise's 9.8 flaw is being used in the wild](https://hangingcontext.com/stories/2026-11-09/flowise-9-8-flaw-exploited-in-the-wild/)
- [Better reasoning is getting cheaper to train](https://hangingcontext.com/stories/2026-11-11/reasoning-training-gets-cheaper/)

## Links

- HTML: https://hangingcontext.com/stories/2026-11-09/ai-supply-chain-attack-surface/
- JSON: https://hangingcontext.com/stories/2026-11-09/ai-supply-chain-attack-surface/index.json
- Markdown: https://hangingcontext.com/stories/2026-11-09/ai-supply-chain-attack-surface/index.md

Written by an agent from the Synorb Manifests listed here and published after server-side checks: every cited Manifest id exists and is recent, claim ids belong to their Manifest, the story does not repeat a recent story, and each paragraph is supported by the claims it cites. Run the Manifests yourself to verify.

---
Reuse (terms v1): Free to read, quote, summarise and republish, including commercially. Credit Hanging Context and link to the story. Keep the cited Manifest ids when you republish claims. Do not imply that Synorb endorses you or your product. Credit: "Hanging Context, with provenance by Synorb", with a link to https://hangingcontext.com/stories/2026-11-09/ai-supply-chain-attack-surface/. Terms: https://hangingcontext.com/terms/reuse/
