AI-NATIVE ASPM PLATFORM

Your whole security posture, in one place.

SAST OpenGrep
SCA OSV
Malware GuardDog
Secrets Gitleaks
IaC Checkov
Images OSV
Cloud AWS

See and fix security risks across your code, dependencies, secrets, containers, and cloud accounts — with AI that verifies every finding, suggests fixes, and watches for new CVEs. One platform, built for growing teams.

AI Triage·Suggested Fixes·AI Security Briefs·CVE Watch·Alerts to PRs, Slack & Teams·MCP for AI IDEs·Policy as Code
7
Scan Engines
1
Platform
24/7
CVE Watch
worker/jobs/rebuild.py:6
SAST · OPENGREP
RULE python.lang.security.audit.subprocess-shell-true
1import subprocess
2from pathlib import Path
3
4def trigger_rebuild():
5 cmd = "git pull origin main && make build"
6 subprocess.run(cmd, shell=True, check=True)
Scanner ⚠ HIGH · COMMAND INJECTION
AI reviewing · taint sources · subprocess args · call sites
✓ FALSE POSITIVE · CLEARED CONF 94%

cmd is a local string literal with no user input. No tainted source reaches subprocess.run, and the rule fires on shell=True regardless of taint — safe to clear.

SUGGESTED · ALLOWLIST RULE
rule: python.lang.security.audit.subprocess-shell-true path: worker/jobs/rebuild.py
Verified 0.7s Qwen Coder · Local → Posted to PR #1284
services/billing/pom.xml:39
SCA · OSV-SCANNER
CVE CVE-2021-44228 · Log4Shell · org.apache.logging.log4j:log4j-core
36<dependency>
37 <groupId>org.apache.logging.log4j</groupId>
38 <artifactId>log4j-core</artifactId>
39 <version>2.14.1</version>
40 <scope>runtime</scope>
41</dependency>
Scanner ⚠ CRITICAL · RCE · CVSS 10.0
AI reviewing · reachability · logger config · advisory range
! CONFIRMED · REAL CONF 99%

2.14.1 is inside the Log4Shell range (fixed in 2.15.0) and reachable through the JNDI lookups in billing/log4j2.xml — exploitable in production. Upgrade to 2.17.1, which also closes the follow-up CVEs.

SUGGESTED FIX
<version>2.14.1</version> <version>2.17.1</version>
Verified 1.1s Qwen Coder · Local → Slack #sec-alerts
tests/fixtures/seed.py:5
SECRETS · GITLEAKS
RULE gitleaks:aws-access-token · entropy 4.32
1import pytest
2
3@pytest.fixture
4def mock_s3_client(monkeypatch):
5 monkeypatch.setenv("AWS_ACCESS_KEY_ID", "AKIAIOSFODNN7EXAMPLE")
6 yield mock_s3()
Scanner ⚠ CRITICAL · HARDCODED AWS KEY
AI reviewing · key validity · file context · usage scope
✓ FALSE POSITIVE · CLEARED CONF 98%

Value matches AWS's documented example credential AKIAIOSFODNN7EXAMPLE — non-functional, used in their public docs. File is under tests/fixtures/ and only loaded by pytest. No production exposure.

SUGGESTED · ALLOWLIST PATTERN
rule: gitleaks:aws-access-token path: tests/fixtures/**
Verified 0.5s Qwen Coder · Local → Auto-suppressed
route53 / acme.io
CLOUD · AWS
CHECK Dangling DNS · record points at a released Elastic IP
1zone acme.io # public
2record api-legacy.acme.io. A 52.29.14.201
3ttl 300
4eip not held by this account
5ip range AWS public pool · eu-central-1
6region global
Scanner ⚠ HIGH · SUBDOMAIN TAKEOVER
AI reviewing · record liveness · EIP ownership · zone delegation
! CONFIRMED · REAL CONF 96%

The zone is public and api-legacy still resolves to an address this account no longer holds. It is back in AWS's pool — whoever allocates it next serves content on your subdomain.

SUGGESTED FIX · DELETE RECORD
api-legacy.acme.io. 300 IN A 52.29.14.201
Verified 1.3s Qwen Coder · Local → Closes once removed
7 engines, one platform
AI triages every finding
No security team required
Set up in minutes
Free for open source

One platform. Every layer of your stack.

From the first line of code to the container you ship and the cloud account it runs in — and AI verifies every finding so your team can trust the results.

01
Source Code
SAST · OpenGrep
SQL injection XSS Command injection Path traversal SSRF Insecure deserialization
02
Dependencies
SCA · OSV
Log4Shell Spring4Shell CVE tracking CycloneDX SBOM 7+ ecosystems
03
Malicious Packages
Malware · GuardDog
Typosquats Install-script backdoors Obfuscated payloads Maintainer takeovers npm · PyPI · Go · RubyGems
04
Secrets
Secrets · Gitleaks
AWS keys DB credentials JWT secrets Private keys 200+ rules
05
Infrastructure
IaC · Checkov
Public S3 buckets Open security groups Over-privileged IAM Terraform · K8s · CloudFormation
06
Container Images
Image · OSV
OS package CVEs App package CVEs Layer attribution Source ↔ image correlation
07
Cloud Accounts
Cloud · AWS
Subdomain takeover Public buckets & snapshots Internet-open security groups Root without MFA CloudTrail off
AI VERIFICATION LAYER
Every finding from every layer flows through AI triage. Confidence scored. False positives cleared. Fixes suggested.
✓ Cleared
! Real + fix

Your security posture, at a glance.

Every finding in one dashboard. Track trends, triage, and manage posture across projects, images, and cloud accounts.

app.vygl.io/dashboard
Dashboard
Projects
Findings
Images
Cloud
Dependencies
Rules
Open
293
MTTR
4.2h
Scan Success
94%
AI Cleared
47
Findings Over Time
StatusType
7D1M3M6M
New findings Resolved
AI Insights
Active
251 of 293 analyzed 86%
True Positive18964%
False Positive4716%
Uncertain155%
Pending4214%
Confidence 198 High 41 Med 12 Low
Top Rules
RuleSevTPFPCount
gitleaks.generic-api-keyHigh543387
sql-injection-fstringCrit21223
CVE-2021-44228Crit16016
s3-bucket-public-accessHigh8412

AI that triages every finding.

AI reviews every finding with verdicts, confidence scores, and suggested fixes — so you spend less time on false positives.

app.vygl.io/findings/a3e7f…
High SAST Open

python.django.security.injection.sql-injection

User-controlled data is used in a raw SQL query, which could lead to SQL injection.

backend/views/users.py:42-44
35 from django.http import JsonResponse
36 from .models import User
37
38 @login_required
39 @require_GET
40 def search_users(request):
41 """Search users by name."""
42 query = request.GET.get("q")
43 users = User.objects.raw(
44 f"SELECT * FROM users WHERE name LIKE '%{query}%'"
45 )
46 results = [
47 {"id": u.id, "name": u.name}
48 for u in users
49 ]
50 return JsonResponse({"users": results})
AI Verification
AI-generated — verify manually before acting.

Analyze this finding with AI to determine if it's a true or false positive and get a suggested fix.

One click, one security brief.

A full project report on demand. AI reads every open finding and tells you what to fix first — and what you can clear in five minutes.

app.vygl.io/projects/acme-api
acme-api main
Findings Dependencies Security Brief Scans

Security Brief

Generate a comprehensive AI-powered security brief for this project. Analyzes all open findings across scan types.

Connect once. Vygl keeps scanning.

Connect a repository, a registry, or an AWS account. Vygl scans code on every push, images from your registry, and your cloud on your schedule — findings flow to your IDE, Slack, and dashboard.

Source Code
GitHub
GitLab
Bitbucket
Container Registries
Harbor
Amazon ECR
GHCR
Google Artifact
Docker Hub
Cloud Accounts
AWS Accounts
Vygl Scan Engine
SAST · SCA · Malware · Secrets · IaC · Images · Cloud
AI triage on every finding
Delivered to
AI IDE Agents Claude · Cursor · Windsurf
Slack summary + report links
Microsoft Teams channel alerts + report links
PR / MR Comments inline findings + AI triage
Dashboard real-time posture updates

Zero CI/CD Config

No YAML, no pipelines, no Docker setup. Connect your account and scanning begins on the next push.

Ephemeral Cloning

Source code is cloned to a temp directory and deleted immediately after scanning. Nothing persists.

Org-Wide Policies

Cloud-managed rules apply to every managed scan. Enforce security policy across all repos from one place.

A new CVE drops. You know where it lands.

Vygl monitors your SBOM against new CVE disclosures. When one hits a dependency you ship, your team knows before it's exploited.

24/7 Continuous Monitoring
4× Daily Scan Cycles

SBOM-Aware

Every dependency from your scans is automatically tracked against live CVE feeds. No manual package lists.

Instant Notifications

Slack, email, or webhook alerts fire as soon as a new CVE matches a package in your SBOM.

Upgrade Guidance

Every alert carries the affected range, CVSS, EPSS, CISA KEV status, and the version that fixes it.

CVE Alerts Live
Critical
CVE-2026-31245 2 min ago

Remote Code Execution in jsonwebtoken

jsonwebtoken <9.0.2 3 projects affected
Notified via
High
CVE-2026-28891 6 hours ago

Prototype Pollution in lodash.merge

lodash <4.17.22 7 projects affected
Medium
CVE-2026-27433 1 day ago

ReDoS in semver range parsing

semver <7.5.5 12 projects affected

Scan the images you ship.

Scan any container from the command line or your registry. Vygl finds vulnerable packages on every layer and links them back to the code they came from.

OS + App Package Coverage
Every Layer Deep Image Analysis

CLI Scanning

One command to scan any image. vygl scan --image harbor.io/app:latest with --fail-on severity gating for CI/CD.

Registry Integration

Connect Harbor, Amazon ECR, GHCR, Google Artifact Registry, or Docker Hub. Harbor scans on push via webhook; the others are rescanned nightly.

Source ↔ Container Correlation

Match SCA findings in your source code with the same CVEs in your built image. See the full supply chain picture.

Per-Image AI Analysis

AI-generated security brief for each container image — base image upgrade advice, priority package bumps, and actionable fix plans.

Image Scan Complete
harbor.internal.io/acme-api:v2.4.1
Debian 12 · 10 Layers · 142 Packages
2 Critical 1 High 2 Medium 1 Low
OS Packages
openssl@3.0.13
Critical → 3.0.15
libcurl@7.88.1
High → 8.5.0
zlib@1.2.13
Medium → 1.3.1
App Packages
setuptools@68.0.0
Critical → 70.0.0
requests@2.28.0
Medium → 2.31.0
pillow@9.5.0
Low → 10.2.0

Scan what's actually running.

Connect an AWS account with a read-only role. Vygl reads the live account for the misconfigurations your templates can't show — including the DNS records that quietly hand a subdomain to someone else.

IaC scanning asks

“Will this template create something insecure?”

Reads Terraform, CloudFormation and Kubernetes in your repo.
Cloud scanning asks

“Is what’s running right now insecure?”

Reads your AWS account: console changes, drift, and anything a deletion left behind.
  1. 01

    Read-only, and provably so

    One CloudFormation stack creates a role Vygl can assume only with an external ID generated for your organization. Nothing it grants can write, and object contents stay unreadable. Delete the stack and access ends.

  2. 02

    No stored cloud credentials

    Each scan runs on a one-hour session that is never written down. Rather keep it all in-house? Run vygl scan --scan-types cloud from your own CI.

  3. 03

    Subdomain takeovers, caught

    A Route 53 record still pointing at an Elastic IP you released lives in no repo and no template. Vygl flags it with the zone, the record, and the address.

  4. 04

    Signal, not a compliance dump

    90+ curated checks, deduplicated per resource, verified by AI, and closed automatically once fixed. A scan that can’t see your account fails loudly — it never reports “clean”.

Cloud Account Scanned 12 min ago
0 Critical 6 High 14 Medium 8 Low 91 checks · 7 families
High Subdomain takeover AI · Confirmed
api-legacy.acme.io.  A  52.29.14.201

Elastic IP released — the address is no longer held by this account.

sg-0a41f7e2 · SSH open to 0.0.0.0/0 High
acme-exports · public via bucket policy High
management-trail · log validation off Medium
eu-central-1 · EBS default encryption off Medium

AWS today. Scans run on the schedule you pick, from every few hours to monthly, or on demand — and land in the same queue, triage, and alerts as the rest of Vygl.

Your models, your choice.

Run AI triage on a local model for full privacy, or bring the provider you already use.

Local Models Recommended OpenAI Anthropic AWS Bedrock Azure OpenAI Any OpenAI-compatible

With a local model, nothing leaves your environment. A hosted provider sees only the finding under review and the code around it — and how much code is your call.

Prefer the command line? Run it anywhere.

Run the Vygl CLI as a Docker container in your pipeline or on your laptop. Your repository and its history stay put — only findings sync to your dashboard.

CI/CD Pipeline

Your security data, inside your IDE.

Query findings and verify issues from Claude Code, Cursor, or any MCP-compatible IDE — zero context switching.

Claude Code acme-api
~/projects/acme-api codex-1 full-auto
Session
Model Claude Sonnet
Provider Anthropic
Context
34k / 100k
Files
users.py models.py pom.xml main.tf
Tools 4 available
EXPLORER
users.py
models.py
pom.xml
main.tf
users.py
38 @login_required
39 @require_GET
40 def search_users(request):
41 """Search users."""
42 query = request.GET.get("q")
43 users = User.objects.raw(
44 f"...%{query}%'"
45 )
46 results = [{"id": u.id}
47 for u in users]
48 return JsonResponse(..)
AI Chat MCP
Works with any MCP-compatible IDE
Claude Code
Codex
OpenCode
Cursor
Windsurf
Any MCP Client

Fits into your workflow.

Vygl notifies your team in the tools they already use.

github.com/acme/acme-api/pull/247
Open

feat: add user preferences API endpoint

feature/user-prefs main
Conversation 3 Files changed 4
vygl-bot bot commented 2 minutes ago

Vygl Scan Results

acme-api — feature/user-prefs | SAST, SCA, MALWARE, SECRETS, IAC

47 findings — 2 critical | 8 high | 12 medium | 3 low
5 new | 42 recurring

New Findings (5)

SeverityTypeFindingFile
CRITICAL SCA Log4Shell CVE-2021-44228 in log4j-core@2.14.1 pom.xml
CRITICAL SAST SQL injection via f-string in raw query backend/views/users.py
HIGH SECRETS Hardcoded API key config/settings.py
HIGH SAST Command Injection via os.system() backend/utils/deploy.py
MEDIUM SCA CVE-2019-12384 in jackson-databind@2.9.8 pom.xml
Recurring Findings (42) — ...and 42 more
AI Triage Summary
True Positive Log4Shell — JNDI lookup enabled, log4j-core 2.14.1 is exploitable. Upgrade to 2.21+.
True Positive SQL Injection — user-controlled input flows directly into raw SQL query without parameterization
Likely FP Command Injection — input is validated through allowlist, os.system() receives only predefined commands
Posted by Vygl — security scanning with AI-powered triage
GitHub PRs
GitLab MRs
Bitbucket PRs
Non-blocking by default
Available

Slack

Available

Real-time scan results with severity breakdowns, new vs recurring findings, AI verdicts, and clickable links to every finding.

  • Scan completion summaries
  • Critical & high finding alerts
  • Direct links to findings
  • Test notifications

Microsoft Teams

Available

Get scan notifications and finding alerts delivered directly to your Teams channels.

  • Scan completion summaries
  • Critical & high finding alerts
  • Direct links to findings
  • Test notifications

Webhooks & Email

Available

Send scan and CVE events as JSON to any HTTP endpoint — a SIEM, an incident tool, your own automation — or straight to an inbox.

  • Per-event filtering
  • SSRF-safe delivery
  • Stable event IDs for dedupe
  • Test sends

Security posture you can actually keep up with.

One platform for your whole stack, with AI doing the heavy lifting. Access is currently invitation-only — request an invite and we'll get you set up.

Contents