Security Policy

OWASP ZAP API Scan — Baseline Report

Date: 2026-04-06 Tool: OWASP ZAP (ghcr.io/zaproxy/zaproxy:stable) Scan type: API Scan with OpenAPI specification Target: http://localhost:2187/api/v1/OpenAPI spec: docs/reference/api/openapi.yamlContext: Pre-release security scan for v3.1.0

Summary

CategoryCount
Total scan rules tested119
PASS118
WARN1
FAIL0

Of the 119 rules, 53 are active scan rules (attack simulation) and 66 are passive scan rules (observation-based analysis).

Passive Scan Results

Security Headers & Configuration

Rule IDTestResult
10010Cookie No HttpOnly FlagPASS
10011Cookie Without Secure FlagPASS
10015Re-examine Cache-control DirectivesPASS
10019Content-Type Header MissingPASS
10020Anti-clickjacking HeaderPASS
10021X-Content-Type-Options Header MissingPASS
10035Strict-Transport-Security HeaderPASS
10036HTTP Server Response HeaderPASS
10037Server Leaks Information via "X-Powered-By"PASS
10038Content Security Policy (CSP) Header Not SetPASS
10039X-Backend-Server Header Information LeakPASS
10054Cookie without SameSite AttributePASS
10055CSPPASS
10056X-Debug-Token Information LeakPASS
10061X-AspNet-Version Response HeaderPASS
10063Permissions Policy Header Not SetPASS
10098Cross-Domain MisconfigurationPASS

Information Disclosure

Rule IDTestResult
10009In Page Banner Information LeakPASS
10023Information Disclosure — Debug Error MessagesPASS
10024Information Disclosure — Sensitive Information in URLPASS
10025Information Disclosure — Sensitive Information in HTTP Referrer HeaderPASS
10027Information Disclosure — Suspicious CommentsPASS
10052X-ChromeLogger-Data (XCOLD) Header Information LeakPASS
10057Username Hash FoundPASS
10062PII DisclosurePASS
10096Timestamp DisclosurePASS
10097Hash DisclosurePASS
10099Source Code DisclosurePASS
2Private IP DisclosurePASS

Cross-Site & Redirect Attacks

Rule IDTestResult
10017Cross-Domain JavaScript Source File InclusionPASS
10028Off-site RedirectPASS
10029Cookie PoisoningPASS
10030User Controllable CharsetPASS
10031User Controllable HTML Element Attribute (Potential XSS)PASS
10043User Controllable JavaScript Event (XSS)PASS
10044Big Redirect Detected (Potential Sensitive Information Leak)PASS
10108Reverse TabnabbingPASS

Transport Security

Rule IDTestResult
10040Secure Pages Include Mixed ContentPASS
10041HTTP to HTTPS Insecure Transition in Form PostPASS
10042HTTPS to HTTP Insecure Transition in Form PostPASS
10047HTTPS Content Available via HTTPPASS
10106HTTP Only SitePASS

Authentication & Session

Rule IDTestResult
10105Weak Authentication MethodPASS
10111Authentication Request IdentifiedPASS
10112Session Management Response IdentifiedPASS
10113Verification Request IdentifiedPASS
10202Absence of Anti-CSRF TokensPASS

Known Vulnerabilities & Miscellaneous

Rule IDTestResult
0Directory BrowsingPASS
10003Vulnerable JS Library (Powered by Retire.js)PASS
10026HTTP Parameter OverridePASS
10032ViewstatePASS
10033Directory BrowsingPASS
10034Heartbleed OpenSSL Vulnerability (Indicative)PASS
10045Source Code Disclosure — /WEB-INF FolderPASS
10048Remote Code Execution — Shell ShockPASS
10049Content CacheabilityPASS
10050Retrieved from CachePASS
10058GET for POSTPASS
10104User Agent FuzzerPASS
10109Modern Web ApplicationPASS
10110Dangerous JS FunctionsPASS
10115Script Served From Malicious Domain (polyfill)PASS
10116ZAP is Out of DatePASS
20015Heartbleed OpenSSL VulnerabilityPASS
20017Source Code Disclosure — CVE-2012-1823PASS

Active Scan Results

Injection Attacks

Rule IDTestResult
40018SQL Injection (Generic)PASS
40019SQL Injection — MySQL (Time Based)PASS
40020SQL Injection — Hypersonic SQL (Time Based)PASS
40021SQL Injection — Oracle (Time Based)PASS
40022SQL Injection — PostgreSQL (Time Based)PASS
40027SQL Injection — MsSQL (Time Based)PASS
90021XPath InjectionPASS
90029SOAP XML InjectionPASS
90017XSLT InjectionPASS

Cross-Site Scripting (XSS)

Rule IDTestResult
40012Cross Site Scripting (Reflected)PASS
40014Cross Site Scripting (Persistent)PASS
40016Cross Site Scripting (Persistent) — PrimePASS
40017Cross Site Scripting (Persistent) — SpiderPASS
40026Cross Site Scripting (DOM Based)PASS

Remote Code Execution

Rule IDTestResult
20018Remote Code Execution — CVE-2012-1823PASS
40048Remote Code Execution (React2Shell)PASS
90019Server Side Code InjectionPASS
90020Remote OS Command InjectionPASS
90037Remote OS Command Injection (Time Based)PASS

Server-Side Attacks

Rule IDTestResult
90023XML External Entity AttackPASS
40009Server Side IncludePASS
90035Server Side Template InjectionPASS
90036Server Side Template Injection (Blind)PASS
90026SOAP Action SpoofingPASS
40044Exponential Entity Expansion (Billion Laughs)PASS

Path & File Attacks

Rule IDTestResult
6Path TraversalPASS
7Remote File InclusionPASS
40032.htaccess Information LeakPASS
40034.env Information LeakPASS
40035Hidden File FinderPASS

Authentication & Session

Rule IDTestResult
3Session ID in URL RewritePASS
20019External RedirectPASS
90033Loosely Scoped CookiePASS

Known CVEs

Rule IDTestResult
40043Log4ShellPASS
40045Spring4ShellPASS
90001Insecure JSF ViewStatePASS
90002Java Serialization ObjectPASS

Infrastructure

Rule IDTestResult
30001Buffer OverflowPASS
30002Format String ErrorPASS
40003CRLF InjectionPASS
40008Parameter TamperingPASS
40028ELMAH Information LeakPASS
40029Trace.axd Information LeakPASS
40042Spring Actuator Information LeakPASS
90004Insufficient Site Isolation Against SpectrePASS
90011Charset MismatchPASS
90022Application Error DisclosurePASS
90024Generic Padding OraclePASS
90030WSDL File DetectionPASS
90034Cloud Metadata Potentially ExposedPASS
90003Sub Resource Integrity Attribute MissingPASS
50000Script Active Scan RulesPASS
50001Script Passive Scan RulesPASS

Warnings

Rule IDTestResultDetails
100001Unexpected Content-TypeWARN13 instances — SPA fallback returns text/html for unknown paths (random URL fuzzing by ZAP). This is expected behavior: Vue Router handles client-side routing, so the server returns the SPA shell for any unrecognized path. Not a security issue.

Informational Alerts (No Action Required)

AlertRisk LevelInstancesNotes
Client Error response code (401, 404)InformationalExpectedUnauthenticated API requests correctly return 401 Unauthorized
Non-Storable ContentInformationalExpected401 responses are correctly non-cacheable

Comparison with Previous Scan (2026-03-24)

Metric2026-03-242026-04-06Change
Rules tested119119No change
PASS118118No change
WARN11No change
FAIL00No change
Content-Type WARN instances1413-1 (minor fluctuation from random URL generation)

No new vulnerabilities, regressions, or security findings since the previous baseline. This scan serves as the pre-release DAST baseline for v3.1.0.

How to Reproduce

# Start Capacitarr
docker compose up -d --build

# Run ZAP API scan
make security:zap

# Reports generated:
#   zap-report.html  — full HTML report
#   zap-report.md    — markdown summary