Close Open Privacy Scan
App Privacy Score
High risk · 1064 finding(s)
Based on: 9 first-party package(s) · 88/191 deps analyzed
Dependency score: 0 (High risk)
bar_chart Score Breakdown
list Scan Summary
swap_horiz Confirmed data exfiltration in application code
External domains:
access.line.meaccount.box.comaccountname.blob.core.windows.netaccounts.faceit.comaccounts.google.comaccounts.spotify.comaccounts.zoho.comall-http-intake.logs.datad0g.comapi.anthropic.comapi.atlassian.comapi.box.comapi.coinbase.comapi.dropboxapi.comapi.faceit.comapi.foursquare.comapi.freshbooks.comapi.github.comapi.hubapi.comapi.instagram.comapi.intra.42.frapi.linkedin.comapi.medium.comapi.netlify.comapi.openai.comapi.pinterest.comapi.pipedrive.comapi.reference.langfuse.comapi.spotify.comapi.todoist.comapi.trakt.tvapi.twitter.comapi.usepylon.comapi.vk.comapi.workos.comapi.zoom.usapp.circleci.comapp.exampleapp.hubspot.comapp.netlify.comapp.posthog.comappleid.apple.comauth.atlassian.comauth.freshbooks.comauthjs.devavatars.yandex.netbedrock-agent-runtime.us-west-2.amazonaws.combedrock-runtime.us-east-1.amazonaws.combitbucket.orgboosty.tobrowser-intake-ap1-datadoghq.combrowser-intake-ap2-datadoghq.combrowser-intake-uk1-datadoghq.comcal.comcdn.discordapp.comci.appveyor.comclickhouse.comcloud.google.comcloud.langfuse.comcommons.wikimedia.orgdate-fns.orgdiscord.comdocs.aws.amazon.comdocs.github.comdocs.langfuse.comdtdg.coen.wikipedia.orgeu.posthog.comexample.okta.comfoursquare.comgithub.acme.comgithub.comgitlab.comgraph.facebook.comgraph.instagram.comgraph.microsoft.comhipaa.cloud.langfuse.comhttp-intake.logsid.twitch.tvimage.eveonline.comimg.shields.iojp.cloud.langfuse.comjson-schema.orgkapi.kakao.comkauth.kakao.comlangfuse.comlangfuse.locallogin.eveonline.comlogin.mailchimp.comlogin.microsoftonline.comlogin.salesforce.comlogin.yandex.rulu.mamedium.commeta.wikimedia.orgmixpanel.comnext-auth.js.orgnid.naver.comnpms.iooauth.mail.ruoauth.pipedrive.comoauth.reddit.comoauth.vk.comoauth.yandex.ruopenapi.naver.comopencollective.comosu.ppy.shpatreon.complatform.openai.complay.min.ioposthog.compublic-api.wordpress.compublic-trace-http-intake.logs.datad0g.compublic-trace-http-intake.logs.datadoghq.compublic-trace-http-intake.logs.datadoghq.euraw.githubusercontent.comsentry.ioslack.comstaging.langfuse.comstatic.langfuse.comstatic.modelcontextprotocol.iostatus.langfuse.comtanstack.comtodoist.comtools.ietf.orgtrace.browser-intake-us3-datadoghq.comtrace.browser-intake-us5-datadoghq.comtrakt.tvtrpc.iotwitter.comus.cloud.langfuse.comus.i.posthog.comus.posthog.comwww.battlenet.com.cnwww.bungie.netwww.coinbase.comwww.datadoghq.comwww.dropbox.comwww.eclipse.orgwww.facebook.comwww.googleapis.comwww.linkedin.comwww.patreon.comwww.pinterest.comwww.reddit.comwww.strava.comwww.w3.orgx.comx.localyour-instance.openai.azure.comyour-service.comzoom.us
- 1source
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:107 - 2sink
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:247
- 1source
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:137 - 2sink
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:337
- 1source
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:144 - 2sink
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:378
- 1source
repo/web/src/features/auth-credentials/server/signupApiHandler.ts:95 - 2sink
repo/web/src/features/auth-credentials/server/signupApiHandler.ts:116
- 1source
repo/web/src/features/auth-credentials/server/signupApiHandler.ts:96 - 2sink
repo/web/src/features/auth-credentials/server/signupApiHandler.ts:118
- 1source
repo/web/src/pages/api/auth/signup-verify.ts:12 - 2sink
repo/web/src/pages/api/auth/signup-verify.ts:96
- 1source
repo/web/src/pages/auth/enterprise-sso-required.tsx:84 - 2sink
repo/web/src/pages/auth/enterprise-sso-required.tsx:92
- 1source
repo/web/src/pages/auth/sign-in.tsx:663 - 2sink
repo/web/src/pages/auth/sign-in.tsx:677
- 1source
repo/web/src/pages/auth/sign-up.tsx:134 - 2sink
repo/web/src/pages/auth/sign-up.tsx:149
- 1source
repo/web/src/pages/auth/sign-up.tsx:355 - 2sink
repo/web/src/pages/auth/sign-up.tsx:350
- 1source
repo/web/src/server/adminAccessWebhook.ts:47 - 2sink
repo/web/src/server/adminAccessWebhook.ts:57
- 1source
repo/web/src/server/auth.ts:1123 - 2sink
repo/web/src/server/auth.ts:1119
- 1source
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:250 - 2sink
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:247
- 1source
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:347 - 2sink
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:337
- 1source
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:388 - 2sink
repo/web/src/ee/features/sfdc-sync/server/sfdcService.ts:378
hub Dependency data flows (14)
- 1source
pkgs/npm/[email protected]/core/lib/oauth/callback.js:83 - 2sink
pkgs/npm/[email protected]/core/lib/oauth/callback.js:86
- 1source
pkgs/npm/[email protected]/core/lib/oauth/callback.js:83 - 2sink
pkgs/npm/[email protected]/core/lib/oauth/callback.js:103
- 1source
pkgs/npm/[email protected]/src/core/lib/oauth/callback.ts:87 - 2sink
pkgs/npm/[email protected]/src/core/lib/oauth/callback.ts:91
- 1source
pkgs/npm/[email protected]/src/core/lib/oauth/callback.ts:87 - 2sink
pkgs/npm/[email protected]/src/core/lib/oauth/callback.ts:111
- 1source
pkgs/npm/@[email protected]/src/bedrock-sigv4-fetch.ts:76 - 2sink
pkgs/npm/@[email protected]/src/bedrock-sigv4-fetch.ts:87
- 1source
pkgs/npm/[email protected]/providers/trakt.js:23 - 2sink
pkgs/npm/[email protected]/providers/trakt.js:22
- 1source
pkgs/npm/[email protected]/src/providers/trakt.ts:35 - 2sink
pkgs/npm/[email protected]/src/providers/trakt.ts:34
- 1source
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:401 - 2sink
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:453
- 1source
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:522 - 2sink
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:543
- 1source
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:583 - 2sink
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:595
- 1source
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:711 - 2sink
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:723
- 1source
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:1222 - 2sink
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:1244
- 1source
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:1284 - 2sink
pkgs/npm/[email protected]/lib/src/extensions/conversations/external/index.js:1295
- 1source
pkgs/npm/@[email protected]/src/bedrock-sigv4-fetch.ts:76 - 2sink
pkgs/npm/@[email protected]/src/bedrock-sigv4-fetch.ts:90
</> First-Party Code
first-party (npm): web
npm first-party const { ok } = await this.post({
url: this.config.userUrl,
payload: { isLangfuse: true, ...parsed.data },
context: { event: "upsertUser", userId: parsed.data.userId },
expectJsonResponse: false,
});
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.
const { ok } = await this.post({
url: this.config.orgUrl,
payload: {
isLangfuse: true,
type: "setUserRole" as const,
...parsed.data,
},
context: {
event: "setUserRole",
orgId: parsed.data.orgId,
userId: parsed.data.userId,
},
expectJsonResponse: false,
});
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.
const { ok } = await this.post({
url: this.config.orgUrl,
payload: {
isLangfuse: true,
type: "removeUser" as const,
...parsed.data,
},
context: {
event: "removeUser",
orgId: parsed.data.orgId,
userId: parsed.data.userId,
},
expectJsonResponse: false,
});
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.
await fetch(env.LANGFUSE_NEW_USER_SIGNUP_WEBHOOK, {
method: "POST",
body: JSON.stringify({
name: body.name,
email: body.email,
referralSource: body.referralSource,
cloudRegion: env.NEXT_PUBLIC_LANGFUSE_CLOUD_REGION,
userId: userId,
}),
headers: {
"Content-Type": "application/json",
},
});
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.
body: JSON.stringify({
name: body.name,
email: body.email,
referralSource: body.referralSource,
cloudRegion: env.NEXT_PUBLIC_LANGFUSE_CLOUD_REGION,
userId: userId,
}),
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.
await fetch(env.LANGFUSE_NEW_USER_SIGNUP_WEBHOOK, {
method: "POST",
body: JSON.stringify({
name,
email: normalizedEmail,
cloudRegion: env.NEXT_PUBLIC_LANGFUSE_CLOUD_REGION,
userId: newUser.id,
}),
headers: {
"Content-Type": "application/json",
},
});
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.
const response = await fetch(
`${env.NEXT_PUBLIC_BASE_PATH ?? ""}/api/auth/check-sso`,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ domain }),
},
);
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.
const res = await fetch(
`${env.NEXT_PUBLIC_BASE_PATH ?? ""}/api/auth/check-sso`,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ domain }),
},
);
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.
const res = await fetch(
`${env.NEXT_PUBLIC_BASE_PATH ?? ""}/api/auth/check-sso`,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ domain }),
},
);
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.
const res = await fetch(
`${env.NEXT_PUBLIC_BASE_PATH ?? ""}/api/auth/signup-verify`,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ email: values.email, name: values.name }),
},
);
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.
const response = await fetch(env.LANGFUSE_ADMIN_ACCESS_WEBHOOK, {
method: "POST",
body: JSON.stringify(payload),
headers: {
"Content-Type": "application/json",
},
});
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.
await fetch(env.LANGFUSE_NEW_USER_SIGNUP_WEBHOOK, {
method: "POST",
body: JSON.stringify({
name: user.name,
email: user.email,
cloudRegion: env.NEXT_PUBLIC_LANGFUSE_CLOUD_REGION,
userId: user.id,
// referralSource: ...
}),
headers: {
"Content-Type": "application/json",
},
});
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.
import * as Sentry from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { withSentryConfig } from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { captureException } from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const { ok } = await this.post({
url: this.config.userUrl,
payload: { isLangfuse: true, ...parsed.data },
context: { event: "upsertUser", userId: parsed.data.userId },
expectJsonResponse: false,
});
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.
const { ok } = await this.post({
url: this.config.orgUrl,
payload: {
isLangfuse: true,
type: "setUserRole" as const,
...parsed.data,
},
context: {
event: "setUserRole",
orgId: parsed.data.orgId,
userId: parsed.data.userId,
},
expectJsonResponse: false,
});
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.
const { ok } = await this.post({
url: this.config.orgUrl,
payload: {
isLangfuse: true,
type: "removeUser" as const,
...parsed.data,
},
context: {
event: "removeUser",
orgId: parsed.data.orgId,
userId: parsed.data.userId,
},
expectJsonResponse: false,
});
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.
posthog.capture({
distinctId: user.id,
event: "cloud_signup_complete",
properties: {
cloudRegion: env.NEXT_PUBLIC_LANGFUSE_CLOUD_REGION,
hasDemoAccess: demoProject !== undefined,
hasDefaultOrg: defaultOrgs.length > 0,
hasDefaultProject: defaultProjects.length > 0,
},
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
await posthog.shutdown();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import posthog from "posthog-js";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.reset();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import posthog from "posthog-js";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.setPersonProperties({
[V4_BETA_ENABLED_POSTHOG_PROPERTY]: v4BetaEnabled,
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.register({
[V4_BETA_ENABLED_POSTHOG_PROPERTY]: v4BetaEnabled,
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { PostHog } from "posthog-node";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { type CaptureResult, type CaptureOptions } from "posthog-js";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
return posthog.capture(eventName, properties, options);
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.capture({
distinctId: "docker:" + clientId,
event: "telemetry",
properties: {
langfuseVersion: VERSION,
userDomains: domains,
totalProjects: totalProjects,
traces: countTraces,
scores: countScores,
observations: countObservations,
datasets: countDatasets,
datasetItems: countDatasetItems,
datasetRuns: countDatasetRuns,
datasetRunItems: countDatasetRunItems,
startTimeframe: startTimeframe?.toISOString(),
endTimeframe: endTimeframe.toISOString(),
eeLicenseKey: env.LANGFUSE_EE_LICENSE_KEY,
langfuseCloudRegion: env.NEXT_PUBLIC_LANGFUSE_CLOUD_REGION,
$set: {
environment: process.env.NODE_ENV,
userDomains: domains,
docker: true,
langfuseVersion: VERSION,
},
},
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
await posthog.shutdown();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { captureException } from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { captureException } from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { setUser } from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import posthog from "posthog-js";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY, {
api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST || "https://eu.posthog.com",
ui_host: "https://eu.posthog.com",
// Enable debug mode in development
loaded: (posthog) => {
if (process.env.NODE_ENV === "development") posthog.debug();
},
session_recording: {
maskCapturedNetworkRequestFn(request) {
request.requestBody = request.requestBody ? "REDACTED" : undefined;
request.responseBody = request.responseBody ? "REDACTED" : undefined;
return request;
},
},
autocapture: false,
enable_heatmaps: false,
persistence: "cookie",
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
if (process.env.NODE_ENV === "development") posthog.debug();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.capture("$pageview");
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.identify(sessionUser.id ?? undefined, {
environment: process.env.NODE_ENV,
email: sessionUser.email ?? undefined,
name: sessionUser.name ?? undefined,
featureFlags: sessionUser.featureFlags ?? undefined,
projects:
sessionUser.organizations.flatMap((org) =>
org.projects.map((project) => ({
...project,
organization: org,
})),
) ?? undefined,
LANGFUSE_CLOUD_REGION: region,
[V4_BETA_ENABLED_POSTHOG_PROPERTY]:
sessionUser.v4BetaEnabled ?? false,
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.register({
[V4_BETA_ENABLED_POSTHOG_PROPERTY]:
sessionUser.v4BetaEnabled ?? false,
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.unregister(V4_BETA_ENABLED_POSTHOG_PROPERTY);
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import {
captureUnderscoreErrorException,
isEnabled as isSentryEnabled,
} from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { captureException } from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { addBreadcrumb, captureException } from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { addBreadcrumb, captureException } from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { type ErrorEvent } from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { type ErrorEvent } from "@sentry/nextjs";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
expand_more 436 low-confidence finding(s)
low env_fs — Filesystem access. 12 locations
low env_fs — Environment-variable access. 386 locations
low egress — Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination. 34 locations
low egress — Hardcoded external endpoint. Review what data is sent to this destination. 4 locations
first-party (npm): worker
npm first-partyimport { PostHog } from "posthog-node";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const hadEvents = mixpanel.getBatchSize() > 0;
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
await mixpanel.flush();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
mixpanel.addEvent(event);
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
mixpanel.addEvent(event);
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
mixpanel.addEvent(event);
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
mixpanel.addEvent(event);
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
bytes: mixpanel.getSerializedBytes(),
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
import { PostHog } from "posthog-node";
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
await posthog.flush();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.capture(transform(value, config.projectId));
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.on("error", (error) => {
logger.error(
`[POSTHOG] Error sending data to PostHog for project ${projectId}: ${error}`,
);
executionConfig.sendError =
error instanceof Error ? error : new Error(String(error));
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
await posthog.shutdown();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
await posthog.shutdown();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
expand_more 152 low-confidence finding(s)
low env_fs — Environment-variable access. 108 locations
low egress — Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination. 4 locations
low env_fs — Filesystem access. 17 locations
low egress — Hardcoded external endpoint. Review what data is sent to this destination. 21 locations
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${ADMIN_API_KEY}`,
},
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.
console.warn(
` Retry ${attempt + 1}/${maxRetries} after ${resp.status} (waiting ${Math.round(delay)}ms)`,
);
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.
first-party (npm)
npm first-partyexpand_more 19 low-confidence finding(s)
low env_fs — Filesystem access. 12 locations
low egress — Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination. 2 locations
low env_fs — Environment-variable access. 4 locations
const response = await fetch(sourceApiUrl, {
headers: getGitHubHeaders(),
});
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.
first-party (npm): packages/in-app-agent-sandbox-runtime
npm first-partyexpand_more 5 low-confidence finding(s)
low env_fs — Filesystem access. 5 locations
first-party (npm): packages/shared
npm first-partyexpand_more 44 low-confidence finding(s)
low env_fs — Environment-variable access. 16 locations
low egress — Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination. 4 locations
low env_fs — Filesystem access. 22 locations
low egress — Hardcoded external endpoint. Review what data is sent to this destination. 2 locations
</> Dependencies
next-auth
npm dependency const response = await provider.token.request({
provider,
params,
checks,
client
});
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.
profile = await provider.userinfo.request({
provider,
tokens,
client
});
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.
const response = await provider.token.request({
provider,
params,
checks,
client,
})
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.
profile = await provider.userinfo.request({
provider,
tokens,
client,
})
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.
headers: {
Authorization: `Bearer ${context.tokens.access_token}`,
"trakt-api-version": "2",
"trakt-api-key": context.provider.clientId
}
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.
headers: {
Authorization: `Bearer ${context.tokens.access_token}`,
"trakt-api-version": "2",
"trakt-api-key": context.provider.clientId as string,
},
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 67 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. 14 locations
low env_fs — Environment-variable access. 41 locations
low egress — Hardcoded external endpoint. Review what data is sent to this destination. 10 locations
low env_fs — Filesystem access. 2 locations
@ai-sdk/amazon-bedrock
npm dependency return fetch(input, {
...init,
body,
headers: combinedHeaders as HeadersInit,
});
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.
headers: combinedHeaders as HeadersInit,
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 3 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. 3 locations
dd-trace
npm dependencyconst TaintedUtils = require('@datadog/native-iast-taint-tracking')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const TaintedUtils = require('@datadog/native-iast-taint-tracking')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const iastRewriter = require('@datadog/wasm-js-rewriter')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
getPrepareStackTrace = require('@datadog/wasm-js-rewriter/js/stack-trace').getPrepareStackTrace
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
cacheRewrittenSourceMap = require('@datadog/wasm-js-rewriter/js/source-map').cacheRewrittenSourceMap
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const TaintedUtils = require('@datadog/native-iast-taint-tracking')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const { DDWAF } = require('@datadog/native-appsec')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
ciVisibilityMetrics.distribution(name, formatMetricTags(tags)).track(measure)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
libdatadog = require('@datadog/libdatadog')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const libdatadog = require('@datadog/libdatadog')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
llmobsMetrics.distribution('init_time', tags).track(initTimeMs)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
llmobsMetrics.distribution('span.raw_size', tags).track(rawEventSize)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
llmobsMetrics.distribution('span.size', tags).track(eventSize)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const { SourceMapper, heap, encode } = require('@datadog/pprof')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
durationDistribution.track(perf.now() - start)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
sizeDistribution.track(form.size())
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const zstdCompress = require('@datadog/libdatadog').load('datadog-js-zstd').zstd_compress
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const { setLogger, SourceMapper } = require('@datadog/pprof')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const pprof = require('@datadog/pprof')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
this.#pprof = require('@datadog/pprof')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
this.#pprof = require('@datadog/pprof')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
nativeMetrics = require('@datadog/native-metrics')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const handle = nativeMetrics.track(span)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
return this.track(value)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
return this.track(-value)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
return this.track(value)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
const libdatadog = require('@datadog/libdatadog')
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
expand_more 91 low-confidence finding(s)
low env_fs — Environment-variable access. 16 locations
low env_fs — Filesystem access. 70 locations
low egress — Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination. 5 locations
posthog-js
npm dependency posthog.setPersonPropertiesForFlags(personProperties);
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
var replayUrl = posthog.get_session_replay_url();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
var personUrl = posthog.requestRouter.endpointFor('ui', "/project/".concat(posthog.config.token, "/person/").concat(posthog.get_distinct_id()));
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
sessionIdListenerUnsubscribe = posthog.onSessionId(function (sessionId) {
if (!reportedSessionIds.has(sessionId)) {
updateCrispChat();
reportedSessionIds.add(sessionId);
}
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
var replayUrl = posthog.get_session_replay_url();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
var personUrl = posthog.requestRouter.endpointFor('ui', "/project/".concat(posthog.config.token, "/person/").concat(posthog.get_distinct_id()));
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
sessionIdListenerUnsubscribe = posthog.onSessionId(function (sessionId) {
if (!reportedSessionIds.has(sessionId)) {
updateIntercom();
reportedSessionIds.add(sessionId);
}
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
if (args.length > 0 && !isCapturingLog && posthog.is_capturing()) {
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
headers: {
'X-Conversations-Token': token,
},
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.
headers: {
'X-Conversations-Token': token,
},
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.
headers: {
'X-Conversations-Token': token,
},
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.
headers: {
'X-Conversations-Token': token,
},
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.
headers: {
'X-Conversations-Token': token,
},
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.
headers: {
'X-Conversations-Token': token,
},
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.
if (!ctx.event.userId && ctx.event.anonymousId !== posthog.get_distinct_id()) {
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.reset();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
if (ctx.event.userId && ctx.event.userId !== posthog.get_distinct_id()) {
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.identify(ctx.event.userId);
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
var additionalProperties = posthog.calculateEventProperties(eventName, ctx.event.properties);
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.register({
distinct_id: user.id(),
$device_id: getSegmentAnonymousId(),
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.capture(posthog_surveys_types_1.SurveyEventName.SHOWN, __assign(__assign((_a = {}, _a[posthog_surveys_types_1.SurveyEventProperties.SURVEY_NAME] = survey.name, _a[posthog_surveys_types_1.SurveyEventProperties.SURVEY_ID] = survey.id, _a[posthog_surveys_types_1.SurveyEventProperties.SURVEY_ITERATION] = survey.current_iteration, _a[posthog_surveys_types_1.SurveyEventProperties.SURVEY_ITERATION_START_DATE] = survey.current_iteration_start_date, _a), (surveyLanguage && (_b = {}, _b[posthog_surveys_types_1.SurveyEventProperties.SURVEY_LANGUAGE] = surveyLanguage, _b))), { sessionRecordingUrl: (_c = posthog.get_session_replay_url) === null || _c === void 0 ? void 0 : _c.call(posthog) }));
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.capture(posthog_surveys_types_1.SurveyEventName.SENT, __assign(__assign(__assign(__assign(__assign((_b = {}, _b[posthog_surveys_types_1.SurveyEventProperties.SURVEY_NAME] = survey.name, _b[posthog_surveys_types_1.SurveyEventProperties.SURVEY_ID] = survey.id, _b[posthog_surveys_types_1.SurveyEventProperties.SURVEY_ITERATION] = survey.current_iteration, _b[posthog_surveys_types_1.SurveyEventProperties.SURVEY_ITERATION_START_DATE] = survey.current_iteration_start_date, _b[posthog_surveys_types_1.SurveyEventProperties.SURVEY_SUBMISSION_ID] = surveySubmissionId, _b[posthog_surveys_types_1.SurveyEventProperties.SURVEY_COMPLETED] = isSurveyCompleted, _b), (surveyLanguage && (_c = {}, _c[posthog_surveys_types_1.SurveyEventProperties.SURVEY_LANGUAGE] = surveyLanguage, _c))), { sessionRecordingUrl: (_e = posthog.get_session_replay_url) === null || _e === void 0 ? void 0 : _e.call(posthog) }), (0, surveys_1.buildSurveyResponseProperties)(responses, survey)), properties), { $set: (_d = {},
_d[(0, survey_utils_1.getSurveyInteractionProperty)(survey, 'responded')] = true,
_d) }));
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.reloadFeatureFlags();
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.capture(posthog_surveys_types_1.SurveyEventName.DISMISSED, __assign(__assign(__assign({}, _buildSurveyEventProperties(survey, inProgressSurvey, posthog)), (surveyLanguage && (_a = {}, _a[posthog_surveys_types_1.SurveyEventProperties.SURVEY_LANGUAGE] = surveyLanguage, _a))), { $set: (_b = {},
_b[(0, survey_utils_1.getSurveyInteractionProperty)(survey, 'dismissed')] = true,
_b) }));
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.capture(posthog_surveys_types_1.SurveyEventName.ABANDONED, _buildSurveyEventProperties(survey, inProgressSurvey, posthog), {
transport: 'sendBeacon',
});
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog-node
npm dependency posthog.withContext(buildRequestContextData(posthog, req), () => next())
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.addPendingPromise(
ErrorTracking.buildEventMessage(
posthog.getErrorPropertiesBuilder(),
error,
hint,
contextData.distinctId,
additionalProperties
).then((msg) => {
return posthog._capturePreparedEvent(msg, false)
})
)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
posthog.getErrorPropertiesBuilder(),
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
return posthog._capturePreparedEvent(msg, false)
A telemetry/analytics SDK is used; event data is sent to a third-party collector.
Fix: Ensure user consent and a lawful basis; strip PII from event payloads.
expand_more 2 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. 2 locations
@ag-ui/client
npm dependencyexpand_more 6 low-confidence finding(s)
this.fetch = config.fetch ?? ((url, requestInit) => fetch(url, requestInit));
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 — Environment-variable access. 5 locations
@astral-sh/ruff-wasm-web
npm dependencyexpand_more 1 low-confidence finding(s)
module_or_path = fetch(module_or_path);
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.
@aws-sdk/credential-providers
npm dependencyexpand_more 2 low-confidence finding(s)
low env_fs — Environment-variable access. 2 locations
@ferrucc-io/emoji-picker
npm dependencyexpand_more 27 low-confidence finding(s)
low env_fs — Filesystem access. 24 locations
const response = await fetch(
"https://api.npmjs.org/downloads/point/last-month/@ferrucc-io/emoji-picker",
);
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 — Environment-variable access. 2 locations
@hookform/resolvers
npm dependencyexpand_more 3 low-confidence finding(s)
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.
low env_fs — Filesystem access. 2 locations
@mastra/mcp
npm dependencyexpand_more 10 low-confidence finding(s)
if (process.env.NODE_OPTIONS?.includes('dd-trace')) {
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 egress — Outbound request to a variable or assembled URL on a network client. Review what data is sent to this destination. 8 locations
html = readFileSync(appResource.htmlPath, '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.
@modelcontextprotocol/sdk
npm dependencyexpand_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
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.
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
@paralleldrive/cuid2
npm dependencyexpand_more 3 low-confidence finding(s)
low env_fs — Filesystem access. 3 locations
@prisma/instrumentation
npm dependencyexpand_more 1 low-confidence finding(s)
const showAllTraces = process.env.PRISMA_SHOW_ALL_TRACES === 'true'
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
npm dependencyexpand_more 5 low-confidence finding(s)
low env_fs — Environment-variable access. 5 locations
@trpc/client
npm dependencyexpand_more 1 low-confidence finding(s)
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.
@trpc/next
npm dependencyexpand_more 1 low-confidence finding(s)
return fetch(url, {
...fetchOpts,
// cache: 'no-cache',
next: {
revalidate,
tags: [cacheTag],
},
});
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.
chroma-js
npm dependencyexpand_more 3 low-confidence finding(s)
low env_fs — Filesystem access. 3 locations
core-js
npm dependencyexpand_more 6 low-confidence finding(s)
low egress — Hardcoded external endpoint. Review what data is sent to this destination. 3 locations
low env_fs — Filesystem access. 3 locations
fastest-levenshtein
npm dependencyexpand_more 3 low-confidence finding(s)
low env_fs — Filesystem access. 3 locations
ioredis
npm dependencyexpand_more 2 low-confidence finding(s)
low env_fs — Filesystem access. 2 locations
jsonpath-plus
npm dependencyexpand_more 2 low-confidence finding(s)
low env_fs — Filesystem access. 2 locations
langfuse
npm dependencyexpand_more 6 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. 6 locations
nanoid
npm dependencyexpand_more 1 low-confidence finding(s)
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.
Skipped dependencies
Production
- @baselime/trpc-opentelemetry-middleware prod — dist-only: no readable source
- @codemirror/autocomplete prod — dist-only: no readable source
- @codemirror/language prod — dist-only: no readable source
- @codemirror/lint prod — dist-only: no readable source
- @codemirror/search prod — dist-only: no readable source
- @codemirror/state prod — dist-only: no readable source
- @langfuse/shared prod — registry 404
- @next-auth/prisma-adapter prod — dist-only: no readable source
- @radix-ui/react-switch prod — dist-only: no readable source
- @radix-ui/react-tabs prod — dist-only: no readable source
- @radix-ui/react-toggle prod — dist-only: no readable source
- @radix-ui/react-toggle-group prod — dist-only: no readable source
- @radix-ui/react-tooltip prod — dist-only: no readable source
- @t3-oss/env-nextjs prod — dist-only: no readable source
- bullmq prod — dist-only: no readable source
- class-variance-authority prod — dist-only: no readable source
- cmdk prod — dist-only: no readable source
- https-proxy-agent prod — dist-only: no readable source
- json-schema-faker prod — dist-only: no readable source
- next prod — tarball exceeds byte cap
- next-themes prod — dist-only: no readable source
- prexit prod — scan budget exceeded
- prism-react-renderer prod — scan budget exceeded
- protobufjs prod — scan budget exceeded
- rate-limiter-flexible prod — scan budget exceeded
- react prod — scan budget exceeded
- react-day-picker prod — scan budget exceeded
- react-dom prod — scan budget exceeded
- react-dropzone prod — scan budget exceeded
- react-grid-layout prod — scan budget exceeded
- react-hook-form prod — scan budget exceeded
- react-icons prod — scan budget exceeded
- react-markdown prod — scan budget exceeded
- react-resizable prod — scan budget exceeded
- react-resizable-panels prod — scan budget exceeded
- react-responsive prod — scan budget exceeded
- react18-json-view prod — scan budget exceeded
- recharts prod — scan budget exceeded
- remark-gfm prod — scan budget exceeded
- sonner prod — scan budget exceeded
- streamdown prod — scan budget exceeded
- stripe prod — scan budget exceeded
- superjson prod — scan budget exceeded
- tailwind-merge prod — scan budget exceeded
- tailwindcss-animate prod — scan budget exceeded
- use-query-params prod — scan budget exceeded
- uuid prod — scan budget exceeded
- vaul prod — scan budget exceeded
- yaml prod — scan budget exceeded
- zod prod — scan budget exceeded
- zustand prod — scan budget exceeded
- @anthropic-ai/tokenizer prod — scan budget exceeded
- @opentelemetry/instrumentation-express prod — scan budget exceeded
- @opentelemetry/instrumentation-undici prod — scan budget exceeded
- @prisma/client prod — scan budget exceeded
- exponential-backoff prod — scan budget exceeded
- express prod — scan budget exceeded
- helmet prod — scan budget exceeded
- p-limit prod — scan budget exceeded
- tiktoken prod — scan budget exceeded
- @eslint/js prod — scan budget exceeded
- @repo/eslint-plugin prod — scan budget exceeded
- eslint-config-next prod — scan budget exceeded
- eslint-config-prettier prod — scan budget exceeded
- eslint-config-turbo prod — scan budget exceeded
- eslint-plugin-only-warn prod — scan budget exceeded
- typescript-eslint prod — scan budget exceeded
- @ai-sdk/anthropic prod — scan budget exceeded
- @ai-sdk/azure prod — scan budget exceeded
- @ai-sdk/google prod — scan budget exceeded
- @ai-sdk/google-vertex prod — scan budget exceeded
- @ai-sdk/openai prod — scan budget exceeded
- @ai-sdk/openai-compatible prod — scan budget exceeded
- @aws-sdk/client-cloudwatch prod — scan budget exceeded
- @aws-sdk/client-lambda prod — scan budget exceeded
- @aws-sdk/client-s3 prod — scan budget exceeded
- @aws-sdk/client-sesv2 prod — scan budget exceeded
- @aws-sdk/lib-storage prod — scan budget exceeded
- @aws-sdk/s3-request-presigner prod — scan budget exceeded
- @azure/storage-blob prod — scan budget exceeded
- @clickhouse/client prod — scan budget exceeded
- @google-cloud/storage prod — scan budget exceeded
- @opentelemetry/otlp-transformer prod — scan budget exceeded
- @react-email/components prod — scan budget exceeded
- @react-email/render prod — scan budget exceeded
- @slack/oauth prod — scan budget exceeded
- @slack/web-api prod — scan budget exceeded
- @smithy/node-http-handler prod — scan budget exceeded
- ai prod — scan budget exceeded
- ajv prod — scan budget exceeded
- ajv-formats prod — scan budget exceeded
- google-auth-library prod — scan budget exceeded
- ipaddr.js prod — scan budget exceeded
- langfuse-langchain prod — scan budget exceeded
- lossless-json prod — scan budget exceeded
- lru-cache prod — scan budget exceeded
- nodemailer prod — scan budget exceeded
- oci-common prod — scan budget exceeded
- oci-objectstorage prod — scan budget exceeded
- safe-regex2 prod — scan budget exceeded
- slackify-markdown prod — scan budget exceeded
- undici prod — scan budget exceeded
- winston prod — scan budget exceeded