Back to skill

Security audit

privy-integration

Security checks across malware telemetry and agentic risk

Overview

This is a documentation-only Privy integration skill, but it needs review because its examples can enable automatic crypto payments, private-key handling, account deletion, and server-side signing with limited guardrail guidance.

Review before installing or using this skill in production. Treat its payment, wallet, and server-side snippets as starting points only: use testnets or small balances first, add explicit user confirmation and spend caps, allowlist payment destinations and contracts, keep PRIVY_APP_SECRET server-only, avoid raw private-key import/export unless absolutely necessary, validate any transaction before server signing, and wrap account creation/deletion in authorization, consent, logging, and recovery controls.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (11)

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The skill includes examples for sending transactions and automated payment flows without an explicit warning that these actions can spend real funds on live chains or trigger paid HTTP 402 flows. In a wallet/payment integration skill, users may copy-paste examples directly into production or testing contexts and unintentionally authorize transfers or payments.

Missing User Warnings

Low
Confidence
84% confidence
Finding
The server-side section shows use of PRIVY_APP_SECRET and token verification but does not explicitly warn that the app secret must remain server-only and never be exposed to browser code, logs, or client bundles. In an auth skill, omission of this guidance increases the chance that inexperienced users mishandle credentials, which could enable token verification abuse or broader compromise of backend-integrated Privy operations.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The React `useX402Fetch` example shows a payment-capable wrapper around `fetch` and immediately uses it against a remote endpoint, but does not explicitly warn that a normal-looking content fetch can trigger a real USDC payment after a 402 challenge. In a payments integration skill, this omission is more dangerous because developers may copy the snippet verbatim and unknowingly enable automatic spending from a connected wallet.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The server-side x402 example transparently wraps `fetch` so 402 responses are handled automatically, yet it lacks a warning that this can spend funds from a server-managed Privy wallet without any interactive confirmation. In the context of agentic/server payments, this is particularly risky because repeated or attacker-influenced requests could drain wallet balances or create unexpected financial exposure.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The MPP polyfill example globally changes `fetch` behavior so all requests may automatically negotiate and fulfill payment challenges, but the snippet does not warn about the scope of this modification. This is more dangerous than a one-off wrapper because any later code path, dependency, or cross-origin request that encounters a 402 could trigger unintended payments from the configured account.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The user lookup flow resolves email or phone identifiers and auto-creates users with wallets if not found, but it omits privacy and consent warnings around handling sensitive identifiers and provisioning accounts. In this skill context, that can lead implementers to build flows that collect personal data, enumerate users, or create wallets without adequate notice, verification, or authorization controls.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The documentation includes an example of importing a wallet via raw private key (`importWallet({privateKey: '0x...'})`) without any warning about the extreme sensitivity of private keys, secure handling requirements, or safer alternatives. In an authentication and wallet integration skill, this can normalize dangerous implementation patterns and lead developers to collect, log, persist, or transmit private keys insecurely, risking irreversible wallet compromise.

Missing User Warnings

Medium
Confidence
87% confidence
Finding
The documentation shows direct private key export without any warning, guardrails, or guidance on secure handling. In a wallet/authentication integration skill, normalizing private key export can lead developers to log, persist, transmit, or otherwise expose wallet secrets, which would enable full wallet compromise.

Missing User Warnings

Medium
Confidence
72% confidence
Finding
The example performs irreversible user deletion with no warning about permanence, ownership checks, or operational safeguards. In an auth/user-management SDK reference, this can encourage unsafe copy-paste use that deletes accounts without confirmation flows, authorization checks, or recovery planning.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The fee-payer workflow demonstrates generating or loading a server-side signing key, accepting a user-signed transaction blob, partially signing it, and broadcasting it without showing validation of transaction contents, allowed instructions, fee limits, or authorization checks. In a payments/auth wallet integration skill, this is dangerous because developers may copy the pattern directly, exposing sponsor funds and enabling abuse of the server as a transaction-signing relay.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The documentation shows server-side private key export (`privy.wallets().export(walletId)`) without a strong warning that this operation exposes the wallet’s most sensitive secret and can permanently break the intended self-custodial security model if logged, persisted, or mishandled. In a wallet/auth integration skill, readers may copy this pattern directly into backend services, creating a high-risk path to key theft, insider abuse, or accidental secret disclosure.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.