Close Open Privacy Scan

bolt Snapshot: commit ff4ff2d
science engine v1.23
schedule 2026-07-25T05:37:38.691472+00:00

verified_user Application data leak confirmed

High-confidence data exfiltration identified in application code.

smart_toy MCP server detected: @modelcontextprotocol/sdk — detected in dependencies, not a safety judgment.

App Privacy Score

22 /100
High privacy risk — application leak confirmed

High risk · 367 finding(s)

Based on: 7 first-party package(s) · 53/57 deps analyzed

Dependency score: 82 (Low risk)

bar_chart Score Breakdown

pii_flow −60
egress −15
env_fs −3

list Scan Summary

4 high 9 medium 354 low
First-party packages: 2
Dependency packages: 27
Ecosystem: npm

swap_horiz Confirmed data exfiltration in application code

External domains: ahooks.js.organimations.devdate-fns.orgevilmartians.comgithub.comjson-schema.orglogin.salesforce.comorm.drizzle.teamreact.devreactjs.orgsonner.emilkowal.skitailwindcss.comtanstack.comtrpc.iotwitter.comunpkg.comwebplatform.github.iowww.w3.orgwww.w3ctech.com

high first-party (npm): apps/frontend A credential read from the environment/filesystem flows to an external network call in a non-auth-header position (request body). Review what is sent.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:414
high first-party (npm): apps/frontend A credential read from the environment/filesystem flows to an external network call in a non-auth-header position (request body). Review what is sent.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:442
high first-party (npm): apps/frontend A credential read from the environment/filesystem flows to an external network call in a non-auth-header position (request body). Review what is sent.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:471
high first-party (npm): apps/frontend A credential read from the environment/filesystem flows to an external network call in a non-auth-header position (request body). Review what is sent.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:501
medium first-party (npm): apps/backend PII-bearing data is written to a log sink. Logged PII is a privacy concern even when it does not leave the process.
  1. 1sourcerepo/apps/backend/src/auth.ts:42
  2. 2sinkrepo/apps/backend/src/auth.ts:50
medium first-party (npm): apps/frontend Credentials parsed from the request URL are applied as authorization on the same outbound HTTP request. This is intentional URL authentication, not unexpected data exfiltration.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:414
medium first-party (npm): apps/frontend A credential read from the environment/filesystem is applied as authorization on the same outbound request (auth header). This is intentional authentication, not unexpected data exfiltration.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:416
medium first-party (npm): apps/frontend Credentials parsed from the request URL are applied as authorization on the same outbound HTTP request. This is intentional URL authentication, not unexpected data exfiltration.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:442
medium first-party (npm): apps/frontend A credential read from the environment/filesystem is applied as authorization on the same outbound request (auth header). This is intentional authentication, not unexpected data exfiltration.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:444
medium first-party (npm): apps/frontend Credentials parsed from the request URL are applied as authorization on the same outbound HTTP request. This is intentional URL authentication, not unexpected data exfiltration.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:471
medium first-party (npm): apps/frontend A credential read from the environment/filesystem is applied as authorization on the same outbound request (auth header). This is intentional authentication, not unexpected data exfiltration.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:473
medium first-party (npm): apps/frontend Credentials parsed from the request URL are applied as authorization on the same outbound HTTP request. This is intentional URL authentication, not unexpected data exfiltration.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:501
medium first-party (npm): apps/frontend A credential read from the environment/filesystem is applied as authorization on the same outbound request (auth header). This is intentional authentication, not unexpected data exfiltration.
  1. 1sourcerepo/apps/frontend/hooks/useConnection.ts:377
  2. 2sinkrepo/apps/frontend/hooks/useConnection.ts:503

</> First-Party Code

first-party (npm): apps/frontend

npm first-party
high pii_flow production #029e933ad54d8e54 A credential read from the environment/filesystem flows to an external network call in a non-auth-header position (request body). Review what is sent.
repo/apps/frontend/hooks/useConnection.ts:414 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:414
                fetch(url, {
                  ...init,
                  headers,
                  credentials: "include",
                }),

User/PII-bearing data flows to an external sink — the classic data-exfiltration shape.

Fix: Confirm no user identifiers reach this sink; redact/hash before sending, or remove the flow.

high pii_flow production #4b034560b62d1f1f A credential read from the environment/filesystem flows to an external network call in a non-auth-header position (request body). Review what is sent.
repo/apps/frontend/hooks/useConnection.ts:442 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:442
                    fetch(url, {
                      ...init,
                      headers,
                      credentials: "include",
                    }),

User/PII-bearing data flows to an external sink — the classic data-exfiltration shape.

Fix: Confirm no user identifiers reach this sink; redact/hash before sending, or remove the flow.

high pii_flow production #c7a7328096881557 A credential read from the environment/filesystem flows to an external network call in a non-auth-header position (request body). Review what is sent.
repo/apps/frontend/hooks/useConnection.ts:471 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:471
                    fetch(url, {
                      ...init,
                      headers,
                      credentials: "include",
                    }),

User/PII-bearing data flows to an external sink — the classic data-exfiltration shape.

Fix: Confirm no user identifiers reach this sink; redact/hash before sending, or remove the flow.

high pii_flow production #d7d80e99089104dd A credential read from the environment/filesystem flows to an external network call in a non-auth-header position (request body). Review what is sent.
repo/apps/frontend/hooks/useConnection.ts:501 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:501
                    fetch(url, {
                      ...init,
                      headers,
                      credentials: "include",
                    }),

User/PII-bearing data flows to an external sink — the classic data-exfiltration shape.

Fix: Confirm no user identifiers reach this sink; redact/hash before sending, or remove the flow.

medium pii_flow production #1a93dbb8a8245aec Credentials parsed from the request URL are applied as authorization on the same outbound HTTP request. This is intentional URL authentication, not unexpected data exfiltration.
repo/apps/frontend/hooks/useConnection.ts:414 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:414
                fetch(url, {
                  ...init,
                  headers,
                  credentials: "include",
                }),

A credential (read from the environment/filesystem, or parsed from the request URL) is applied as authorization on the same outbound request. This is intentional authentication to the service the credential belongs to, not unexpected data exfiltration.

Fix: Confirm the destination is the credential's own service; scope the credential and avoid logging it. No action if this is the intended authenticated API call.

medium pii_flow production #a0e15a501e522e06 A credential read from the environment/filesystem is applied as authorization on the same outbound request (auth header). This is intentional authentication, not unexpected data exfiltration.
repo/apps/frontend/hooks/useConnection.ts:416 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:416
                  headers,

A credential (read from the environment/filesystem, or parsed from the request URL) is applied as authorization on the same outbound request. This is intentional authentication to the service the credential belongs to, not unexpected data exfiltration.

Fix: Confirm the destination is the credential's own service; scope the credential and avoid logging it. No action if this is the intended authenticated API call.

medium pii_flow production #7275c0dde69a30ba Credentials parsed from the request URL are applied as authorization on the same outbound HTTP request. This is intentional URL authentication, not unexpected data exfiltration.
repo/apps/frontend/hooks/useConnection.ts:442 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:442
                    fetch(url, {
                      ...init,
                      headers,
                      credentials: "include",
                    }),

A credential (read from the environment/filesystem, or parsed from the request URL) is applied as authorization on the same outbound request. This is intentional authentication to the service the credential belongs to, not unexpected data exfiltration.

Fix: Confirm the destination is the credential's own service; scope the credential and avoid logging it. No action if this is the intended authenticated API call.

medium pii_flow production #6bd12bd15a6a2755 A credential read from the environment/filesystem is applied as authorization on the same outbound request (auth header). This is intentional authentication, not unexpected data exfiltration.
repo/apps/frontend/hooks/useConnection.ts:444 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:444
                      headers,

A credential (read from the environment/filesystem, or parsed from the request URL) is applied as authorization on the same outbound request. This is intentional authentication to the service the credential belongs to, not unexpected data exfiltration.

Fix: Confirm the destination is the credential's own service; scope the credential and avoid logging it. No action if this is the intended authenticated API call.

medium pii_flow production #22455c4707ba0587 Credentials parsed from the request URL are applied as authorization on the same outbound HTTP request. This is intentional URL authentication, not unexpected data exfiltration.
repo/apps/frontend/hooks/useConnection.ts:471 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:471
                    fetch(url, {
                      ...init,
                      headers,
                      credentials: "include",
                    }),

A credential (read from the environment/filesystem, or parsed from the request URL) is applied as authorization on the same outbound request. This is intentional authentication to the service the credential belongs to, not unexpected data exfiltration.

Fix: Confirm the destination is the credential's own service; scope the credential and avoid logging it. No action if this is the intended authenticated API call.

medium pii_flow production #9d6085463acd5fbc A credential read from the environment/filesystem is applied as authorization on the same outbound request (auth header). This is intentional authentication, not unexpected data exfiltration.
repo/apps/frontend/hooks/useConnection.ts:473 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:473
                      headers,

A credential (read from the environment/filesystem, or parsed from the request URL) is applied as authorization on the same outbound request. This is intentional authentication to the service the credential belongs to, not unexpected data exfiltration.

Fix: Confirm the destination is the credential's own service; scope the credential and avoid logging it. No action if this is the intended authenticated API call.

medium pii_flow production #c73dc5958a1bc1c4 Credentials parsed from the request URL are applied as authorization on the same outbound HTTP request. This is intentional URL authentication, not unexpected data exfiltration.
repo/apps/frontend/hooks/useConnection.ts:501 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:501
                    fetch(url, {
                      ...init,
                      headers,
                      credentials: "include",
                    }),

A credential (read from the environment/filesystem, or parsed from the request URL) is applied as authorization on the same outbound request. This is intentional authentication to the service the credential belongs to, not unexpected data exfiltration.

Fix: Confirm the destination is the credential's own service; scope the credential and avoid logging it. No action if this is the intended authenticated API call.

medium pii_flow production #9a92c58f114b1232 A credential read from the environment/filesystem is applied as authorization on the same outbound request (auth header). This is intentional authentication, not unexpected data exfiltration.
repo/apps/frontend/hooks/useConnection.ts:503 · flow /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:377 → /tmp/closeopen-xq0v2xph/repo/apps/frontend/hooks/useConnection.ts:503
                      headers,

A credential (read from the environment/filesystem, or parsed from the request URL) is applied as authorization on the same outbound request. This is intentional authentication to the service the credential belongs to, not unexpected data exfiltration.

Fix: Confirm the destination is the credential's own service; scope the credential and avoid logging it. No action if this is the intended authenticated API call.

expand_more 10 low-confidence finding(s)
low egress Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination. 9 locations
low env_fs production #3c3667e9b6d44f80 capability detected · no path traced Environment-variable access.
repo/apps/frontend/lib/env.ts:7
    const serverUrl = process.env.NEXT_PUBLIC_APP_URL || process.env.APP_URL;

Reads environment variables or the filesystem — an inventory-level capability, not a leak on its own.

Fix: Usually benign; confirm any secret read here is not later sent externally.

first-party (npm): apps/backend

npm first-party
medium pii_flow production #1f52a81bb1d42934 PII-bearing data is written to a log sink. Logged PII is a privacy concern even when it does not leave the process.
repo/apps/backend/src/auth.ts:50 · flow /tmp/closeopen-xq0v2xph/repo/apps/backend/src/auth.ts:42 → /tmp/closeopen-xq0v2xph/repo/apps/backend/src/auth.ts:50
  logger.info(`✓ OIDC Provider configured: ${oidcConfig.providerId}`);

PII-bearing data is written to a log/print sink — it stays in-process and does not leave the application, but logged PII is still a privacy concern.

Fix: Avoid logging user identifiers; redact or omit PII from log/print statements.

expand_more 85 low-confidence finding(s)
low env_fs Environment-variable access. 71 locations
low egress Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination. 13 locations
low env_fs production #11aee3cec70e9092 capability detected · no path traced Filesystem access.
repo/apps/backend/src/utils/logger.ts:1
import { createWriteStream, WriteStream } from "fs";

Reads environment variables or the filesystem — an inventory-level capability, not a leak on its own.

Fix: Usually benign; confirm any secret read here is not later sent externally.

</> Dependencies

@better-fetch/fetch

npm dependency
expand_more 1 low-confidence finding(s)
low egress dependency Excluded from app score #3f9483435c2fa4c8 capability detected · no path traced Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination.
pkgs/npm/@[email protected]__reposrc/src/fetch.ts:78
	let response = await fetch(context.url, context);

Data is sent to a hardcoded external endpoint; review what leaves the process.

Fix: Verify the destination and that only non-sensitive data is sent; pin and audit the dependency.

@hookform/resolvers

npm dependency
expand_more 1 low-confidence finding(s)
low env_fs dependency Excluded from app score #4e1c17b9f6fa7ac2 capability detected · no path traced Environment-variable access.
pkgs/npm/@[email protected]/yup/src/yup.ts:97
      if (schemaOptions?.context && process.env.NODE_ENV === 'development') {

Reads environment variables or the filesystem — an inventory-level capability, not a leak on its own.

Fix: Usually benign; confirm any secret read here is not later sent externally.

@modelcontextprotocol/sdk

npm dependency
expand_more 38 low-confidence finding(s)
low egress Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination. 22 locations
low egress tooling Excluded from app score unknown #02c105d18b88f390 capability detected · no path traced Hardcoded external endpoint. Review what data is sent to this destination.
pkgs/npm/@[email protected]__reposrc/scripts/fetch-spec-types.ts:16
    const response = await fetch(url);

Data is sent to a hardcoded external endpoint; review what leaves the process.

Fix: Verify the destination and that only non-sensitive data is sent; pin and audit the dependency.

low env_fs tooling Excluded from app score unknown #7e389fcce7556300 capability detected · no path traced Filesystem access.
pkgs/npm/@[email protected]__reposrc/scripts/fetch-spec-types.ts:77
        writeFileSync(outputPath, fullContent, 'utf-8');

Reads environment variables or the filesystem — an inventory-level capability, not a leak on its own.

Fix: Usually benign; confirm any secret read here is not later sent externally.

low env_fs Environment-variable access. 14 locations

@tailwindcss/postcss

npm dependency
expand_more 11 low-confidence finding(s)
low env_fs Filesystem access. 10 locations
low env_fs dependency Excluded from app score #0a4f7c5741d6f81a capability detected · no path traced Environment-variable access.
pkgs/npm/@[email protected]__reposrc/src/index.ts:75
  let optimize = opts.optimize ?? process.env.NODE_ENV === 'production'

Reads environment variables or the filesystem — an inventory-level capability, not a leak on its own.

Fix: Usually benign; confirm any secret read here is not later sent externally.

@tanstack/react-query-devtools

npm dependency
expand_more 2 low-confidence finding(s)
low env_fs Environment-variable access. 2 locations

@trpc/client

npm dependency
expand_more 1 low-confidence finding(s)
low egress dependency Excluded from app score #65fd5c4c65d4356e capability detected · no path traced Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination.
pkgs/npm/@[email protected]/src/links/wsLink/wsLink.ts:40
        const requestSubscription = client
          .request({
            op,
            transformer,
          })

Data is sent to a hardcoded external endpoint; review what leaves the process.

Fix: Verify the destination and that only non-sensitive data is sent; pin and audit the dependency.

class-variance-authority

npm dependency

cross-spawn

npm dependency
expand_more 2 low-confidence finding(s)
low env_fs dependency Excluded from app score #529c1dc6baa57168 capability detected · no path traced Environment-variable access.
pkgs/npm/[email protected]/lib/parse.js:58
        parsed.command = process.env.comspec || 'cmd.exe';

Reads environment variables or the filesystem — an inventory-level capability, not a leak on its own.

Fix: Usually benign; confirm any secret read here is not later sent externally.

low env_fs dependency Excluded from app score #b5c375a231da2bbd capability detected · no path traced Filesystem access.
pkgs/npm/[email protected]/lib/util/readShebang.js:3
const fs = require('fs');

Reads environment variables or the filesystem — an inventory-level capability, not a leak on its own.

Fix: Usually benign; confirm any secret read here is not later sent externally.

drizzle-orm

npm dependency

express

npm dependency
expand_more 1 low-confidence finding(s)
low env_fs dependency Excluded from app score #cff6698a2a5f9ddc capability detected · no path traced Environment-variable access.
pkgs/npm/[email protected]/lib/application.js:91
  var env = process.env.NODE_ENV || 'development';

Reads environment variables or the filesystem — an inventory-level capability, not a leak on its own.

Fix: Usually benign; confirm any secret read here is not later sent externally.

nanoid

npm dependency
expand_more 1 low-confidence finding(s)
low env_fs dependency Excluded from app score #98c92d843e74be05 capability detected · no path traced Filesystem access.
pkgs/npm/[email protected]/bin/nanoid.js:18
  let json = readFileSync(join(import.meta.dirname, '..', 'package.json'))

Reads environment variables or the filesystem — an inventory-level capability, not a leak on its own.

Fix: Usually benign; confirm any secret read here is not later sent externally.

react-hook-form

npm dependency
expand_more 12 low-confidence finding(s)
low env_fs Environment-variable access. 4 locations
low env_fs Filesystem access. 7 locations
low egress dependency Excluded from app score #64db8676d100e1ff capability detected · no path traced Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination.
pkgs/npm/[email protected]__reposrc/src/form.tsx:88
            const response = await fetch(String(action), {
              method,
              headers: {
                ...headers,
                ...(encType && encType !== 'multipart/form-data'
                  ? { 'Content-Type': encType }
                  : {}),
              },
              body: shouldStringifySubmissionData ? formDataJson : formData,
            });

Data is sent to a hardcoded external endpoint; review what leaves the process.

Fix: Verify the destination and that only non-sensitive data is sent; pin and audit the dependency.

react-syntax-highlighter

npm dependency
expand_more 24 low-confidence finding(s)
low env_fs Filesystem access. 24 locations

swr

npm dependency
expand_more 37 low-confidence finding(s)
low egress Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination. 26 locations
low env_fs Environment-variable access. 9 locations
low env_fs Filesystem access. 2 locations

zustand

npm dependency
expand_more 2 low-confidence finding(s)

Skipped dependencies

Production

  • @repo/trpc prod — registry 404
  • @repo/zod-types prod — registry 404
  • better-auth prod — dist-only: no readable source
  • next prod — tarball exceeds byte cap