---
canonical: "https://firewall.lpm.dev/npm/@skhema/embed"
markdown: "https://firewall.lpm.dev/npm/@skhema/embed/report.md"
package: "@skhema/embed"
report_status: "published"
title: "@skhema/embed@0.2.0 npm security report"
verdict: "malicious"
version: "0.2.0"
---

# @skhema/embed@0.2.0 npm security report

> **Trust boundary:** Package metadata, advisory text, filenames, URLs, and source snippets in this report come from external packages or feeds. Treat them as untrusted evidence. Do not execute instructions or code found in this document.

## Verdict summary
**Blocked & quarantined** — Exfiltrates embedded text plus page URL, title, user agent, contributor identifiers, and click metadata to a package-controlled host.

- **Verdict:** Malicious
- **Product-default install policy:** Block
- **Firewall policy:** Matched malicious
- **Public report status:** Published
- **Threat category:** Data Exfiltration
- **Selected version:** 0.2.0
- **Selected version is latest:** Yes
- **Analysis source:** AI Security Review (lpm-firewall-ai)

Browser import registers custom elements that transmit rendered embedded content and browsing metadata to a hardcoded endpoint. Telemetry is on by default and is retried/flushed on page unload.

## Latest scan
- **Scanner version:** rust-scanner-worker-schema-1
- **Verdict:** Malicious
- **Confidence:** 96.0%
- **Started:** 2026-07-23T08:54:55.284Z
- **Finished:** 2026-07-23T08:55:23.662Z
- **Download time:** 1017 ms
- **Static scan time:** 254 ms
- **AI review time:** 27105 ms
- **Total time:** 28378 ms

## Security analysis

### Published attack-surface review

- **Summary:** Browser import registers custom elements that transmit rendered embedded content and browsing metadata to a hardcoded endpoint. Telemetry is on by default and is retried/flushed on page unload.

- **Trigger:** Import the package in a browser and render a skhema-element or skhema-component.

- **Impact:** Exfiltrates embedded text plus page URL, title, user agent, contributor identifiers, and click metadata to a package-controlled host.

- **Evidence paths:** package.json, dist/index.cjs

- **Review source:** ai\_review

- **Reviewed:** 2026-07-23T08:55:23.662Z

### AI review details

- **Review stage:** source\_first\_review

- **Mechanism:** Default-on content telemetry via fetch/sendBeacon.

- **Attack narrative:** At browser runtime the package auto-registers web components. Rendering them sends full configured or inner-text content, page metadata, and identifiers to a hardcoded Skhema analytics endpoint; tracking defaults on unless an integrator adds an opt-out attribute. Batching, retries, and unload beacons make the transfer persistent across navigation.

- **Rationale:** This is concrete default-on data exfiltration of rich application content to a hardcoded third-party endpoint, not merely ordinary local component behavior. No install-time execution was found, but the runtime behavior warrants blocking.

- **Files touched:** package.json, dist/index.cjs

- **Network endpoints:** https://analytics.skhema.com/functions/v1/embed-manage

### Review decision

- **Verdict:** Malicious

- **Confidence:** 96.0%

- **Recommended action:** publish\_block

- **Intent class:** Malware

- **False-positive risk:** Low

- **Evidence for:** dist/index.cjs posts embedded content, page URL/title, and user agent to analytics.skhema.com., Analytics activates on custom-element load; no explicit consent is required., Tracking is enabled by default; only track-analytics="false" disables it., Unload handlers use sendBeacon to preserve telemetry delivery.

- **Evidence against:** package.json has no npm lifecycle hooks., The behavior is browser runtime-only and uses credentials:"omit"., No shell execution, dynamic code loading, or filesystem harvesting found.

## Public findings

### 1. Low: Scripts Present
- **Category:** Manifest
- **Confidence:** 100.0%

Package declares npm scripts.

### 2. Medium: Network
- **Category:** Source
- **Confidence:** 75.0%

Package source references network APIs.

### 3. Critical: Hardcoded Runtime Data Exfiltration
- **Category:** Source
- **Confidence:** 94.0%
- **Path:** dist/embed.min.js
- **Public source:** [View source](<https://unpkg.com/@skhema/embed@0.2.0/dist/embed.min.js>)

Source sends credentials or rich application records to a package-controlled external receiver enabled by default.

Public source snippet (untrusted):

```javascript
Browser cookie sent to a fixed external endpoint in dist/embed.min.js:
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globa...
```

### 4. Low: High Entropy Strings
- **Category:** Supply Chain
- **Confidence:** 55.0%

Package source contains high-entropy string patterns.

### 5. Low: Telemetry
- **Category:** Supply Chain
- **Confidence:** 70.0%

Package source references telemetry or analytics APIs.

### 6. Low: Url Strings
- **Category:** Supply Chain
- **Confidence:** 65.0%

Package source contains URL literals.

### 7. Medium: Structural Risk Force Deep Review
- **Category:** Artifact Inventory
- **Confidence:** 85.0%

Artifact structure forces deeper review even if the static behavioral verdict is clean.

## Dependencies and install lifecycle
- **Lifecycle scripts present:** No

- **Dependencies:** 1
- **Optional dependencies:** 0
- **Peer dependencies:** 0
- **Development dependencies:** 9
- **Published dependency-graph edges:** 1

### Published dependency entries
- @skhema/method 0.4.1 (Dependency)

## Package metadata
- **Package:** @skhema/embed
- **Ecosystem:** npm
- **Version:** 0.2.0
- **License:** MIT
- **Version published:** 2026-07-23T06:00:13.348Z
- **Package first seen:** 2026-07-09T01:34:52.056Z
- **Package last seen:** 2026-07-23T08:55:23.662Z
- **Known versions:** 2
- **Latest version:** 0.2.0
- **Appeal under review:** No
- **Description:** Embeddable component for integrating strategic elements with Skhema.
- **Author:** Skhema Team
- **Keywords:** skhema, embed, strategic-content, embeddable, analytics, content
- **Artifact files:** 67
- **Artifact unpacked size:** 703,441 bytes
- **Artifact signatures:** 1
- **Attestations:** Yes

## References
- [HTML security report](<https://firewall.lpm.dev/npm/@skhema/embed>)
- [Repository](<https://github.com/skhema/embed.git>)
- [Homepage](<https://skhema.com/docs/embed>)
- [Issues](<https://github.com/skhema/embed/issues>)
