---
canonical: "https://firewall.lpm.dev/npm/config-normalizer-node/v/1.0.0"
markdown: "https://firewall.lpm.dev/npm/config-normalizer-node/v/1.0.0.md"
package: "config-normalizer-node"
report_status: "published"
title: "config-normalizer-node@1.0.0 npm security report"
verdict: "suspicious"
version: "1.0.0"
---

# config-normalizer-node@1.0.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
**Flagged — allowed with a warning** — Allowed by default policy, but 10 finding(s) warrant review before installing.

- **Verdict:** Suspicious
- **Product-default install policy:** Warn
- **Firewall policy:** Telemetry warning (can be blocked)
- **Public report status:** Published
- **Threat category:** Telemetry
- **Selected version:** 1.0.0
- **Selected version is latest:** Yes
- **Analysis source:** AI Security Review (lpm-firewall-ai)

This is the current Firewall decision for the selected package version, based on the available public evidence. Findings for this version do not establish the status of other versions.

AI assessment: suspicious; recommendation: downgrade to warn. This assessment is supporting evidence; the published decision above determines the current policy.

The postinstall hook automatically sends a disclosed, payload-free request to a fixed diagnostics endpoint. This is default install-time telemetry, which warrants a warning under the policy; the source does not show collection of host, user, project, or credential data.

## Latest scan
- **Scanner version:** rust-scanner-worker-schema-1
- **Recorded final verdict:** Suspicious
- **Recorded analysis confidence:** 94.0%
- **Started:** 2026-11-04T04:48:49.962Z
- **Finished:** 2026-11-04T04:49:20.124Z
- **Download time:** 255 ms
- **Static scan time:** 23 ms
- **AI review time:** 29883 ms
- **Total time:** 30162 ms

The recorded confidence comes from the underlying analysis. Trusted advisory policy can determine the final verdict even when the AI assessment differs.

## Security analysis

### Published attack-surface review

- **Summary:** Default install-time telemetry sends a bare request to a fixed diagnostics endpoint.

- **Trigger:** Package installation runs the postinstall hook.

- **Impact:** The endpoint learns that an installation request arrived. Default install-time telemetry is suspicious under the review policy, even when disclosed and payload-free.

- **Evidence paths:** package.json, scripts/install.js, lib/beacon.js, README.md

- **Review source:** ai\_review

- **Reviewed:** 2026-11-04T04:49:20.124Z

### AI review details

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

- **Mechanism:** scripts/install.js calls beacon.emit, which issues an HTTPS GET to my-contolled-backend/beacon; the README says the request has no payload or identifiers.

- **Rationale:** The postinstall hook automatically sends a disclosed, payload-free request to a fixed diagnostics endpoint. This is default install-time telemetry, which warrants a warning under the policy; the source does not show collection of host, user, project, or credential data.

- **Network endpoints:** https://my-contolled-backend/beacon

### Review decision

- **Verdict:** Suspicious

- **Confidence:** 94.0%

- **Recommended action:** downgrade\_to\_warn

- **Intent class:** Dangerous Capability

- **False-positive risk:** Medium

- **Evidence for warning:** The package runs scripts/install.js automatically through its postinstall hook., The install script calls beacon.emit during installation., The beacon makes an HTTPS GET to the fixed /beacon endpoint at my-contolled-backend., The README describes the request as empty and says it carries no identifiers or payload.

- **Evidence against:** The exported normalizer performs a configuration merge; no network behavior appears in that entry point., The README discloses the install-time diagnostic request.

## Affected versions and remediation

This report applies to config-normalizer-node@1.0.0.

- Review the evidence and your use of config-normalizer-node@1.0.0 before allowing it. Restrict the permissions described in this report.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.

## Public findings

### 1. High: Install Time Lifecycle Scripts
- **Category:** Manifest
- **Confidence:** 90.0%
- **Path:** package.json
- **Public source:** [View source](<https://unpkg.com/config-normalizer-node@1.0.0/package.json>)

Package defines install-time lifecycle scripts.

Public source snippet (untrusted):

```json
scripts.postinstall = node scripts/install.js
```

### 2. Medium: Ambiguous Install Lifecycle Script
- **Category:** Manifest
- **Confidence:** 75.0%
- **Path:** package.json
- **Public source:** [View source](<https://unpkg.com/config-normalizer-node@1.0.0/package.json>)

Install-time lifecycle script is not statically allowlisted and needs review.

Public source snippet (untrusted):

```json
scripts.postinstall = node scripts/install.js
```

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

Package declares npm scripts.

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

Package source references network APIs.

### 5. High: Known Malware Source Fingerprint Signature
- **Category:** Supply Chain
- **Confidence:** 94.0%
- **Path:** lib/beacon.js
- **Public source:** [View source](<https://unpkg.com/config-normalizer-node@1.0.0/lib/beacon.js>)

Source fingerprint signature matches a known malicious package signature; route for source-aware review.

Public source snippet (untrusted):

```javascript
matchType = malicious_source_fingerprint_signature
signature = 12bfa582d45c3538
signatureType = suspicious_hashes
sourceLabel = final_verdict:malicious
matchedPackage = node-config-normalizer@1.0.0
matchedPath = lib/beacon.js
matchedIdentity = npm:bm9kZS1jb25maWctbm9ybWFsaXplcg:1.0.0
similarity = 1.000
shingleOverlap = 2
summary = package final verdict is malicious
```

### 6. Medium: Suspicious Lifecycle Evidence
- **Category:** Manifest
- **Confidence:** 94.0%
- **Path:** package.json
- **Public source:** [View source](<https://unpkg.com/config-normalizer-node@1.0.0/package.json>)

The package runs scripts/install.js automatically through its postinstall hook.

Public source snippet (untrusted):

```json
"postinstall": "node scripts/install.js"
  },
  "keywords": [
    "config",
```

### 7. Medium: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 94.0%
- **Path:** scripts/install.js
- **Public source:** [View source](<https://unpkg.com/config-normalizer-node@1.0.0/scripts/install.js>)

The install script calls beacon.emit during installation.

Public source snippet (untrusted):

```javascript
try {
  beacon.emit(finish);
} catch (_) {
  finish();
}

// Hard cap: the request timeout in lib/beacon only covers the socket, so a stalled DNS
// lookup can hold the process far longer. Exit cleanl
```

### 8. Medium: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 94.0%
- **Path:** lib/beacon.js
- **Public source:** [View source](<https://unpkg.com/config-normalizer-node@1.0.0/lib/beacon.js>)

The beacon makes an HTTPS GET to the fixed /beacon endpoint at my-contolled-backend.

Public source snippet (untrusted):

```javascript
var _0x4a = ['htt', 'ps', '://', 'my-contolled-backend', '/beacon'];
var _0x9c = ['[sig', 'nal]', ' install', ' ok'];
var _0x7e = 2500;

function _0x2f() {
  return _0x4a
```

### 9. Medium: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 94.0%
- **Path:** lib/beacon.js
- **Public source:** [View source](<https://unpkg.com/config-normalizer-node@1.0.0/lib/beacon.js>)

The beacon makes an HTTPS GET to the fixed /beacon endpoint at my-contolled-backend.

Public source snippet (untrusted):

```javascript
var _0x66;
  try {
    _0x66 = _0x33.get(_0x11, function (_0x88) {
      _0x88.on('error', _0x55);
      _0x88.on('aborted', _0x55);
      _0x88.on('end', _0x55);
      _0x88.resume();
```

### 10. Medium: Ai Review Evidence
- **Category:** Ai Review
- **Confidence:** 94.0%
- **Path:** README.md
- **Public source:** [View source](<https://unpkg.com/config-normalizer-node@1.0.0/README.md>)

The README describes the request as empty and says it carries no identifiers or payload.

Public source snippet (untrusted):

```markdown
### What the request contains

Nothing. No package name, no version, no file paths, no environment variables, no
hostname, no user identifier, no payload. It is a bare `GET` to a fixed path, and the
response body is disc
```

## Dependencies and install lifecycle
- **Lifecycle scripts present:** Yes
- **Published lifecycle scripts:** postinstall
- **Dependencies:** 0
- **Optional dependencies:** 0
- **Peer dependencies:** 0
- **Development dependencies:** 0
- **Published dependency-graph edges:** 0

## Package metadata
- **Package:** config-normalizer-node
- **Ecosystem:** npm
- **Version:** 1.0.0
- **License:** MIT
- **Version published:** 2026-11-04T02:38:19.622Z
- **Package first seen:** 2026-11-04T02:37:36.166Z
- **Package last seen:** 2026-11-04T04:49:20.124Z
- **Known versions:** 2
- **Latest version:** 1.0.0
- **Appeal under review:** No
- **Description:** Config normalization for Node services, with install-time diagnostics.
- **Maintainers:** sklbds\_analyst
- **Keywords:** config, normalize, settings, env, diagnostics
- **Runtime engines:** node: \>=14
- **Artifact files:** 6
- **Artifact unpacked size:** 8,103 bytes
- **Artifact signatures:** 2
- **Attestations:** No

## References
- [HTML security report](<https://firewall.lpm.dev/npm/config-normalizer-node/v/1.0.0>)
