Skip to content
DVSentry
Product How it works Security Pricing Password generator
Log in Start free

Demo data — fictional company, no repository connected

Sample security report

acme-shop (fictional) · 4 assets · 37 findings · security score 81 / 100. The three below need attention first.

Critical

Prototype pollution reachable from the checkout API

acme-shop/checkout-api · lodash 4.17.15 (package-lock.json) · CVE-2020-8203 · CVSS 7.4 · EPSS 2.1%

Why this risk
POST /api/cart/merge passes request JSON to _.zipObjectDeep, the vulnerable function named in the advisory. The endpoint is internet-facing and the import is reached from the route handler (function-level reachability).
Attack path
Internet → api.acme-shop.example (ALB, port 443) → POST /api/cart/merge → src/cart/merge.js:42 _.zipObjectDeep → Object.prototype polluted → order total override.
Remediation
Upgrade lodash to 4.17.21 (npm install lodash@4.17.21). DVSentry can prepare the version-bump patch; the policy gate blocks this release until the finding is fixed or an exception is approved.
Evidence
{
  "sample": true,
  "finding": "sca:lodash:CVE-2020-8203",
  "severity": "critical",
  "asset": "acme-shop/checkout-api",
  "commit": "9f3c2e1",
  "reachability": {
    "level": "function",
    "symbol": "zipObjectDeep",
    "file": "src/cart/merge.js",
    "line": 42
  },
  "first_seen": "2026-10-12",
  "response_target_days": 7,
  "signature": "ed25519:sample-not-signed"
}

High

Workload role can read every S3 bucket

AWS account 1111-2222-3333 · role checkout-api-task · policy AmazonS3FullAccess

Why this risk
The ECS task role behind the public checkout service is granted s3:* on *. Only one bucket (acme-orders-prod) is used by the workload.
Attack path
Internet → ALB → ECS service checkout-api (running image sha256:4be1…) → task role checkout-api-task → s3:GetObject on acme-customer-exports (contains personal data).
Remediation
Replace AmazonS3FullAccess with a policy allowing s3:GetObject and s3:PutObject on arn:aws:s3:::acme-orders-prod/* only. Rescan the account to confirm the path closes.
Evidence
{
  "sample": true,
  "finding": "cspm:iam_role_wildcard_s3",
  "severity": "high",
  "asset": "aws:111122223333",
  "resource": "role/checkout-api-task",
  "path": [
    "internet",
    "alb/checkout",
    "ecs/checkout-api",
    "role/checkout-api-task",
    "s3/acme-customer-exports"
  ],
  "chain_basis": "verified",
  "signature": "ed25519:sample-not-signed"
}

High

Support assistant follows instructions hidden in a ticket

AI target support-bot.acme-shop.example · tool refund_order · OWASP LLM01 prompt injection

Why this risk
A ticket containing hidden instructions made the assistant reply that it had called refund_order for an order the user did not own. 3 of 5 attempts reproduced the canary.
Attack path
Customer ticket text → retrieval into the assistant's context → instruction followed → reply claims refund_order(order_id=88412) was called.
Remediation
Treat retrieved text as data, check refund_order arguments against the signed-in customer server-side, and require human approval for refunds above a threshold. Retest after the change.
Evidence
{
  "sample": true,
  "finding": "ai:indirect_prompt_injection:tool",
  "severity": "high",
  "asset": "support-bot.acme-shop.example",
  "reproduced": "3/5",
  "claim": "claimed_action (reply only; the backend was not observed)",
  "evaluator": "2026.3",
  "signature": "ed25519:sample-not-signed"
}

A real report's evidence is signed with Ed25519; this sample is not. Start the 14-day trial to scan your own code, cloud and AI targets.

DVSentry
Password generator Security Trust Center Documentation Terms Acceptable use Privacy Data sources Security disclosure Legal Built for DPDP compliance Log in
Created by Aslam Jabri