Veracode is a leading application security platform providing Static Analysis (SAST), Dynamic Analysis (DAST), Software Composition Analysis (SCA), and container security scanning. It integrates into CI/CD pipelines to find vulnerabilities before code reaches production.
Vendor Information
Company
Veracode (Thoma Bravo portfolio)
Founded
2006
Headquarters
Burlington, MA
Founders
Chris Wysopal, Chris Eng, others from @stake security
# Veracode SAST finding
file:api/azure_openai_proxy.pyline:45# Vulnerable code:
api_key=request.headers.get("X-API-Key")response=requests.get(f"https://aoai-cursor-prod.openai.azure.com/chat",headers={"api-key":api_key}# User-controlled input!
)# Veracode finding:
severity:HIGHcwe:CWE-918(Server-SideRequestForgery)description:"API key from user input without validation"recommendation:"Validate API key against allowlist"# Secure code:
ALLOWED_KEYS=get_keys_from_keyvault()api_key=request.headers.get("X-API-Key")ifapi_keynotinALLOWED_KEYS:raiseUnauthorized("Invalid API key")# Now safe to use api_key
# azure-pipeline.yml with Veracodetrigger:-main-developstages:-stage:Security_Scanjobs:-job:Veracode_SASTsteps:-task:Veracode@3inputs:ConnectionDetailsSelection:'Endpoint'AnalysisService:'Veracode-API-Connection'veracodeAppProfile:'Cursor-API-Backend'version:'$(Build.BuildNumber)'filepath:'$(Build.ArtifactStagingDirectory)'sandboxName:'development'createProfile:falsefailBuildIfUploadAndScanBuildStepFails:falseimportResults:truefailBuildOnPolicyFail:true# Block if critical vulns-job:Veracode_SCAsteps:-task:VeracodeSCA@1inputs:srcDir:'$(Build.SourcesDirectory)'failOnCVSS:7.0# Block build if CVSS >= 7.0-job:Container_Scansteps:-task:VeracodeContainerScan@1inputs:image:'$(containerRegistry)/cursor-api:$(Build.BuildNumber)'-stage:DeploydependsOn:Security_Scancondition:succeeded()# Only deploy if scans passjobs:-job:Deploy_to_Azure# Deployment steps...
# Veracode policy for production deploymentsveracode_policy:name:"ProductionDeploymentPolicy"rules:-type:"vulnerability"condition:"severity>='VeryHigh'"action:"FAIL"message:"Critical/VeryHighvulnerabilitiesmustbefixed"-type:"vulnerability"condition:"severity=='High'ANDcvss>=7.5"action:"FAIL"-type:"vulnerability"condition:"severity=='High'ANDcvss<7.5"action:"WARN"grace_period:30 days-type:"dependency"condition:"licensein['GPL','AGPL']"action:"WARN"message:"Copyleftlicensedetected"-type:"secrets"condition:"any_secret_detected"action:"FAIL"message:"Hardcodedsecretsnotallowed"
2. Developer-Friendly Findings
IDE Integration:
1
2
3
4
5
6
7
8
9
10
11
12
Veracode Findings in Cursor IDE:
├── In-line annotations (red squigglies)
├── Hover for vulnerability details
├── Quick fix suggestions
├── Link to full report
└── Similar to ESLint but for security
Example:
Developer sees in Cursor:
Line 45: ⚠️ SQL Injection vulnerability (CWE-89)
Hover: "User input directly in SQL query. Use parameterized queries."
Quick Fix: [Apply suggested fix]
3. Fix Verification
Validation Workflow:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Bug Fix Lifecycle:
1. Veracode finds vulnerability
↓
2. Developer fixes code
↓
3. Developer commits
↓
4. Pipeline runs Veracode scan
↓
5. Veracode verifies:
- Is vulnerability still present?
- Did fix introduce new vulnerabilities?
- Are all instances fixed?
↓
6. If fixed: Mark as resolved
7. If not fixed: Fail build
Benefit: Ensures fixes actually work