Security Assessment Report

Example Corp
Assessment ID
run-5a1e7c0d3b9f4e21
Date
27 Sept 2026, 13:25 UTC
Duration
2h 25m
Status
Partial — 22 of 31 checks
Targets
tls://app.example.com:443, http://app.example.com, https://app.example.com, tcp://app.example.com
Scope
4 assets · 16 findings
The assessment of 4 assets over 2h 25m identified 2 medium, 10 low severity findings. No critical or high-severity issues were identified; the medium-severity issues should be scheduled for remediation. The rating is driven by: TLS 1.0 is accepted; TLS 1.1 is accepted. 7 checks did not complete (TLS configuration (testssl), HTTP security headers, Directory and file discovery, Web endpoint discovery, Template scan (Nuclei)), so this result covers 20 of 27 checks. Testing depth was limited: crawler reached only 3 URLs on http://app.example.com; active testing limited to 2 rules on http://app.example.com and 2 more.
MEDIUM
Overall rating is the highest severity among findings observed directly on the assets.
Driven by: TLS 1.0 is accepted (tls://app.example.com:443); TLS 1.1 is accepted (tls://app.example.com:443)
Coverage limited: 7 of 27 checks did not complete; 4 ran with limited depth. See Coverage by asset.
0
Critical
0
High
2
Medium
10
Low
4
Info
0
Potential

What we tested14 check types, 27 executions

✓
Certificate transparency lookup
No findings
✓
Port scan (nmap)
Open TCP ports: 80, 443
✓
SNMP service probe
No findings
✓
UDP amplification check
No findings
✓
CVE version lookup
No findings
✓
Email domain security (SPF, DKIM, DMARC)
1 finding
✓
Certificate validation
X.509 certificate chain validation and trust verification
No findings
✓
TLS configuration
5 findings
✗
TLS configuration (testssl)
No findings
Did not complete
⚠
HTTP security headers
7 findings
2 runs: 1 completed, 1 partial
✗
Directory and file discovery
No findings
2 runs: 2 did not complete
⚠
Template scan (Nuclei)
No findings
2 runs: 1 completed, 1 partial
✗
Web endpoint discovery
Web endpoint and technology discovery
No findings
10 runs: 8 completed, 2 did not complete
✓
Web security scan (ZAP)
4 findings
2 runs: 2 completed
Not applicable to this target: Platform service probe, SSH configuration audit, SMB service probe, Database service probe, Web endpoint discovery, Credential check, Log analysis

Coverage by asset10 of 21 checks complete

A check counts as complete only when it finished and produced enough evidence to rely on. Where a check was limited, the absence of findings for it does not show the asset is free of those issues.

AssetCompleteLimited or missing
tcp://app.example.com Certificate transparency, Port and service discovery, SNMP service, UDP amplification, CVE version lookup, Email domain security None
tls://app.example.com:443 Certificate validation, TLS configuration
✗ TLS vulnerability tests — Did not complete
http://app.example.com Template scan
⚠ HTTP security headers — Output incomplete or truncated
✗ Content discovery — Did not complete
⚠ Web crawl — Crawler reached only 3 URLs
✗ Browser crawl (JavaScript) — Did not complete
⚠ Web application scan — Active testing limited to 2 rules
https://app.example.com HTTP security headers
✗ Content discovery — Did not complete
⚠ Template scan — Output incomplete or truncated
⚠ Web crawl — Crawler reached only 3 URLs
✗ Browser crawl (JavaScript) — Did not complete
⚠ Web application scan — Active testing limited to 2 rules

Remediation plan1 action, 2 findings

1Disable TLS 1.0 and 1.1 and offer TLS 1.2 and 1.3 only.

Medium
Affects: TLS 1.0 is accepted (tls://app.example.com:443), TLS 1.1 is accepted (tls://app.example.com:443)
Nginx: ssl_protocols TLSv1.2 TLSv1.3;
Apache: SSLProtocol -all +TLSv1.2 +TLSv1.3

Assets in scope4 assets

AssetFindingsHighest severity
tls://app.example.com:4435Medium
http://app.example.com1Low
https://app.example.com9Low
tcp://app.example.com1Info

Findings summary16 total

#FindingEndpointSeverityFound byAssurance
1 TLS 1.0 is accepted tls://app.example.com:443/ Medium TLS configuration Observed
2 TLS 1.1 is accepted tls://app.example.com:443/ Medium TLS configuration Observed
3 TLS cipher suites without forward secrecy are offered tls://app.example.com:443/ Low TLS configuration Observed
4 TLS CBC-mode cipher suites are offered tls://app.example.com:443/ Low TLS configuration Observed
5 Server header reveals technology information http://app.example.com/sitemap.xml
+2 more
Low Web security scan (ZAP) Observed
6 HTTP Strict Transport Security (HSTS) header missing https://app.example.com/
+2 more
Low HTTP security headers
Web security scan (ZAP)
Corroborated by multiple tools
7 Content Security Policy (CSP) header missing https://app.example.com/ Low HTTP security headers Observed
8 Clickjacking protection missing https://app.example.com/ Low HTTP security headers Observed
9 X-Content-Type-Options header missing https://app.example.com/ Low HTTP security headers Observed
10 Unneeded HTTP methods are allowed https://app.example.com/ Low HTTP security headers Observed
11 Cross-origin resource sharing allows any origin https://app.example.com/robots.txt
+2 more
Low Web security scan (ZAP) Observed
12 X-Powered-By header discloses the application framework https://app.example.com/
+2 more
Low Web security scan (ZAP) Observed
13 Anti-spoofing policy of the parent domain not yet verified tcp://app.example.com/ Info Email domain security (SPF, DKIM, DMARC) Observed
14 TLS 1.3 is not offered tls://app.example.com:443/ Info TLS configuration Observed
15 Referrer-Policy header missing https://app.example.com/ Info HTTP security headers Observed
16 Permissions-Policy header missing https://app.example.com/ Info HTTP security headers Observed

Detailed findings

TLS 1.0 is accepted

tls://app.example.com:443/
Found by TLS configuration · TLS10_ACCEPTED · Observed
5.9 Medium

Description

The service completes handshakes using TLS 1.0, which was formally deprecated in 2021 (RFC 8996).

Rated Medium; the scanner reported High. Basis: Auditon severity policy.

Impact

TLS 1.0 lacks modern cipher suites and has known weaknesses (BEAST, POODLE-class downgrades). Practical attacks need a privileged network position and a client that still negotiates TLS 1.0. The main consequence today is non-compliance: PCI DSS has prohibited it since 2018.

Affected endpoint

tls://app.example.com:443/

Remediation

Disable TLS 1.0 and 1.1 and offer TLS 1.2 and 1.3 only.

Nginx: ssl_protocols TLSv1.2 TLSv1.3;
Apache: SSLProtocol -all +TLSv1.2 +TLSv1.3

Confirm legacy clients that must connect support TLS 1.2 before the change.

Classification

CWE-327

PCI DSS 4.0.1: 4.2.1OWASP: A02:2021ISO/IEC 27001:2022: A.8.24NIST: SP 800-52r2

CVSS 3.1: 5.9 · CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

TLS 1.1 is accepted

tls://app.example.com:443/
Found by TLS configuration · TLS11_ACCEPTED · Observed
5.9 Medium

Description

The service completes handshakes using TLS 1.1, which was formally deprecated in 2021 (RFC 8996).

Impact

TLS 1.1 offers no modern (AEAD) cipher suites. Direct attacks are impractical, but the protocol is non-compliant with PCI DSS and NIST SP 800-52r2.

Affected endpoint

tls://app.example.com:443/

Remediation

Disable TLS 1.0 and 1.1 and offer TLS 1.2 and 1.3 only.

Nginx: ssl_protocols TLSv1.2 TLSv1.3;
Apache: SSLProtocol -all +TLSv1.2 +TLSv1.3

Confirm legacy clients that must connect support TLS 1.2 before the change.

Classification

CWE-327

PCI DSS 4.0.1: 4.2.1OWASP: A02:2021ISO/IEC 27001:2022: A.8.24NIST: SP 800-52r2

CVSS 3.1: 5.9 · CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

TLS cipher suites without forward secrecy are offered

tls://app.example.com:443/
Found by TLS configuration · CIPHER_NO_FS · Observed
Low

Description

The server accepts TLS 1.2 cipher suites that use static RSA key exchange.

Rated Low; the scanner reported Medium. Basis: Auditon severity policy.

Impact

If the server's private key is ever compromised, previously recorded traffic that used these suites can be decrypted. Modern clients prefer forward-secret suites, so exposure depends on which clients connect.

Affected endpoint

tls://app.example.com:443/

Remediation

Remove static-RSA key exchange suites (TLS_RSA_WITH_*) and keep ECDHE suites only.

Use the Mozilla SSL Configuration Generator "intermediate" profile: https://ssl-config.mozilla.org/

Classification

CWE-326

PCI DSS 4.0.1: 4.2.1ISO/IEC 27001:2022: A.8.24NIST: SP 800-52r2

TLS CBC-mode cipher suites are offered

tls://app.example.com:443/
Found by TLS configuration · CIPHER_CBC · Observed
Low

Description

The server accepts TLS 1.2 cipher suites that use CBC mode rather than authenticated encryption (AES-GCM, ChaCha20-Poly1305).

Impact

CBC suites have a history of padding-oracle attacks (Lucky13). Current TLS libraries mitigate these, so the risk is low; removing them is hardening.

Affected endpoint

tls://app.example.com:443/

Remediation

Prefer AEAD suites and remove CBC suites once clients support them.

Use the Mozilla SSL Configuration Generator "intermediate" profile: https://ssl-config.mozilla.org/

Classification

CWE-327

ISO/IEC 27001:2022: A.8.24NIST: SP 800-52r2

Server header reveals technology information

http://app.example.com/sitemap.xml
Found by Web security scan (ZAP) · 10036 · Observed
2 Low

Description

The Server HTTP header discloses the web server software and/or version number, aiding attackers in fingerprinting the technology stack.

Impact

Knowing the exact server version helps attackers select targeted exploits and reduces the effort needed for reconnaissance.

Affected endpoints

http://app.example.com/sitemap.xml
http://app.example.com/
http://app.example.com/robots.txt

Remediation

Remove or genericize the Server header:

Nginx: server_tokens off;
Apache: ServerTokens Prod and ServerSignature Off
IIS: Use URL Rewrite to remove the header.

Classification

CWE-497 CWE-200

OWASP: A05:2021ISO/IEC 27001:2022: A.8.9

CVSS 3.1: 2 · CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N

ZAP alert 10036

HTTP Strict Transport Security (HSTS) header missing

https://app.example.com/
Found by HTTP security headers and Web security scan (ZAP) · HSTS_MISSING · Corroborated by multiple tools
Low

Description

The server does not send the Strict-Transport-Security header. This header tells browsers to always connect via HTTPS, preventing protocol downgrade attacks.

Rated Low; the scanner reported Medium. Basis: Auditon severity policy.

Impact

Without HSTS, a user who reaches the site over plain HTTP (by typing the bare domain or following an old link) can be intercepted before the redirect to HTTPS. The attacker must be on the same network path.

Affected endpoints

https://app.example.com/
https://app.example.com/robots.txt
https://app.example.com/sitemap.xml

Evidence

HTTP response status
404
strict-transport-security
Absent in captured response

Remediation

Add to your web server or reverse proxy:

Nginx: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Apache: Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Test with: curl -sI https://<host>/ | grep -i strict

Classification

CWE-319

PCI DSS 4.0.1: 4.2.1OWASP: A05:2021ISO/IEC 27001:2022: A.8.24

MDN: Strict-Transport-Security

Content Security Policy (CSP) header missing

https://app.example.com/
Found by HTTP security headers · CSP_MISSING · Observed
Low

Description

No Content-Security-Policy header is set. CSP restricts which resources the browser can load, providing a strong defense against XSS and data injection.

Impact

CSP limits which scripts a browser will run on the page. Without it, any cross-site scripting flaw is easier to exploit. Its absence is a missing defence-in-depth layer, not a vulnerability by itself, and it matters little for API-only responses.

Affected endpoint

https://app.example.com/

Evidence

HTTP response status
404
content-security-policy
Absent in captured response

Remediation

Start with a restrictive policy and relax as needed:

Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; frame-ancestors 'none'

Use report-uri or report-to directives initially with Content-Security-Policy-Report-Only to test without breaking functionality.

Classification

CWE-693

PCI DSS 4.0.1: 6.2.4OWASP: A05:2021ISO/IEC 27001:2022: A.8.9, A.8.26

MDN: Content-Security-Policy

Clickjacking protection missing

https://app.example.com/
Found by HTTP security headers · FRAME_PROTECTION_MISSING · Observed
Low

Description

Neither an X-Frame-Options header nor a Content-Security-Policy frame-ancestors directive is set, so any site can load these pages inside a frame.

Impact

An attacker can frame the application on a page they control and trick users into clicking hidden buttons, for example to change settings or confirm actions (clickjacking).

Affected endpoint

https://app.example.com/

Remediation

Prevent other sites from framing the application:

Content-Security-Policy: frame-ancestors 'self'
X-Frame-Options: SAMEORIGIN

Send both for compatibility with older browsers.

Classification

CWE-1021

OWASP: A05:2021ISO/IEC 27001:2022: A.8.9, A.8.26

X-Content-Type-Options header missing

https://app.example.com/
Found by HTTP security headers · NOSNIFF_MISSING · Observed
3.1 Low

Description

The X-Content-Type-Options: nosniff header is not set. Without it, browsers may MIME-sniff responses and interpret files as a different content type than declared.

Impact

An attacker could upload a file that the browser interprets as executable script, bypassing content type restrictions.

Affected endpoint

https://app.example.com/

Remediation

Add the header to all responses:

Nginx: add_header X-Content-Type-Options "nosniff" always;
Apache: Header always set X-Content-Type-Options "nosniff"

Classification

CWE-693

PCI DSS 4.0.1: 6.2.4OWASP: A05:2021ISO/IEC 27001:2022: A.8.9

CVSS 3.1: 3.1 · CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N

Unneeded HTTP methods are allowed

https://app.example.com/
Found by HTTP security headers · RISKY_METHODS_ALLOWED · Observed
Low

Description

The server advertises or accepts HTTP methods such as PUT, DELETE or PATCH on a path where they are not expected.

Impact

Accepted methods are only a risk if the application handles them without authorisation. They widen the surface that must be tested.

Affected endpoint

https://app.example.com/

Remediation

Allow only the methods each route needs (typically GET, HEAD, POST, OPTIONS) at the reverse proxy or framework router.

Classification

CWE-749

OWASP: A05:2021ISO/IEC 27001:2022: A.8.9

Cross-origin resource sharing allows any origin

https://app.example.com/robots.txt
Found by Web security scan (ZAP) · 10098 · Observed
3.1 Low

Description

Responses include Access-Control-Allow-Origin: *, so scripts on any website may read them from a visitor's browser.

Rated Low; the scanner reported Medium. Basis: Auditon severity policy.

Impact

For public, unauthenticated content this is usually harmless. It becomes a data-exposure risk only if the same responses carry information that should be restricted to the application's own pages. Browsers never send cookies with wildcard CORS requests.

Affected endpoints

https://app.example.com/robots.txt
https://app.example.com/
https://app.example.com/sitemap.xml

Remediation

Confirm the affected responses contain only public data.

If they do not, return Access-Control-Allow-Origin only for the specific origins that need access, and add Vary: Origin.

Classification

CWE-264 CWE-942

OWASP: A05:2021ISO/IEC 27001:2022: A.8.26

CVSS 3.1: 3.1 · CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N

ZAP alert 10098

X-Powered-By header discloses the application framework

https://app.example.com/
Found by Web security scan (ZAP) · 10037 · Observed
2 Low

Description

Responses include an X-Powered-By header naming the framework or runtime that generated them.

Impact

The header narrows an attacker's search for known vulnerabilities. It carries no risk on its own.

Affected endpoints

https://app.example.com/
https://app.example.com/robots.txt
https://app.example.com/sitemap.xml

Remediation

Remove the X-Powered-By header at the application or reverse proxy.

Express: app.disable('x-powered-by')
PHP: expose_php = Off
Nginx: proxy_hide_header X-Powered-By;

Classification

CWE-497 CWE-200

OWASP: A05:2021ISO/IEC 27001:2022: A.8.9

CVSS 3.1: 2 · CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N

ZAP alert 10037

Anti-spoofing policy of the parent domain not yet verified

tcp://app.example.com/
Found by Email domain security (SPF, DKIM, DMARC) · NON_MAIL_HOST_PARENT_POLICY_UNVERIFIED · Observed
Info

Description

This host does not receive mail and publishes no SPF or DMARC record of its own. Receivers apply the parent domain's DMARC subdomain policy, which this capture did not record.

Impact

None if the parent domain publishes DMARC with sp=reject or p=reject. The next scheduled assessment checks the parent domain automatically.

Affected endpoint

tcp://app.example.com/

Remediation

No action needed if the parent domain enforces DMARC. Otherwise add sp=reject to the parent domain's DMARC record.

TLS 1.3 is not offered

tls://app.example.com:443/
Found by TLS configuration · TLS13_NOT_OFFERED · Observed
Info

Description

The service does not negotiate TLS 1.3.

Impact

No direct risk while TLS 1.2 is correctly configured. TLS 1.3 removes legacy options and speeds up connection setup.

Affected endpoint

tls://app.example.com:443/

Remediation

Enable TLS 1.3 alongside TLS 1.2 on the terminating server or load balancer.

Classification

ISO/IEC 27001:2022: A.8.24

Referrer-Policy header missing

https://app.example.com/
Found by HTTP security headers · REFERRER_POLICY_MISSING · Observed
Info

Description

No Referrer-Policy header is set. The browser may send the full URL (including query strings with sensitive data) to third-party sites in the Referer header.

Impact

Browsers already default to strict-origin-when-cross-origin, which removes paths and query strings from cross-site Referer headers. Setting the header explicitly documents the intent and protects older browsers.

Affected endpoint

https://app.example.com/

Remediation

Set a restrictive referrer policy:

Referrer-Policy: strict-origin-when-cross-origin

This sends only the origin (not the full URL) for cross-origin requests and the full URL for same-origin requests.

Classification

CWE-200

OWASP: A05:2021ISO/IEC 27001:2022: A.8.9

Permissions-Policy header missing

https://app.example.com/
Found by HTTP security headers · PERMISSIONS_POLICY_MISSING · Observed
Info

Description

The Permissions-Policy (formerly Feature-Policy) header is not set. This header controls which browser features (camera, microphone, geolocation) can be used by the page and embedded content.

Impact

Embedded iframes or injected scripts could access sensitive browser APIs without restriction.

Affected endpoint

https://app.example.com/

Remediation

Add a restrictive Permissions-Policy:

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

This disables sensitive features by default. Enable specific features only as needed.

Classification

CWE-693

OWASP: A05:2021ISO/IEC 27001:2022: A.8.9

Controls verified0 passed

Compliance references

Frameworks referenced by findings in this assessment. This mapping is informational — it is not a compliance attestation.

ISO/IEC 27001:2022 references cover Annex A technological controls only. Certification also depends on organisational, people and physical controls outside the scope of a scan.

FrameworkReferenced controlsFindings
PCI DSS 4.0.14.2.1, 6.2.46
OWASPA02:2021, A05:202112
ISO/IEC 27001:2022A.8.24, A.8.26, A.8.915
NISTSP 800-52r24

AppendixExecution details

20
Completed
5
Failed / timed out
10
Skipped
ToolStatusFindingsNotes
Certificate transparency lookup auditon-audit-v1 ✓ 0
Port scan (nmap) auditon-audit-v1 ✓ 0
Platform service probe auditon-audit-v1 Skipped 0 Not applicable to target
SSH configuration audit auditon-audit-v1 Skipped 0 Not applicable to target
SMB service probe auditon-audit-v1 Skipped 0 Not applicable to target
SNMP service probe auditon-audit-v1 ✓ 0
UDP amplification check auditon-audit-v1 ✓ 0
CVE version lookup auditon-audit-v1 ✓ 0
Email domain security (SPF, DKIM, DMARC) auditon-audit-v1 ✓ 1
Certificate validation auditon-audit-v1 ✓ 0
TLS configuration auditon-audit-v1 ✓ 5
TLS configuration (testssl) auditon-audit-v1 ✗ failed 0 Tool reported failure
Database service probe auditon-audit-v1 Skipped 0 Not applicable to target
HTTP security headers auditon-audit-v1 ⚠ 7 Output may be truncated; resolution disabled
Directory and file discovery auditon-audit-v1 ✗ failed 0 Tool reported failure
Template scan (Nuclei) auditon-audit-v1 ✓ 0
Web endpoint discovery ZAP 2.16.1 ✓ 0
Web endpoint discovery ZAP 2.16.1 ✓ 0
Web endpoint discovery ZAP 2.16.1 ✓ 0
Web endpoint discovery ZAP 2.16.1 ✗ failed 0 Tool reported failure
Web endpoint discovery web-v1 Skipped 0 Not applicable to target
Web endpoint discovery ZAP 2.16.1 ✓ 0
Web endpoint discovery web-v1 Skipped 0 Not applicable to target
Web security scan (ZAP) ZAP 2.16.1 ✓ 4
HTTP security headers auditon-audit-v1 ✓ 7
Directory and file discovery auditon-audit-v1 ✗ failed 0 Tool reported failure
Template scan (Nuclei) auditon-audit-v1 ⚠ 0 Output may be truncated; resolution disabled
Web endpoint discovery ZAP 2.16.1 ✓ 0
Web endpoint discovery ZAP 2.16.1 ✓ 0
Web endpoint discovery ZAP 2.16.1 ✓ 0
Web endpoint discovery ZAP 2.16.1 ✗ failed 0 Tool reported failure
Web endpoint discovery web-v1 Skipped 0 Not applicable to target
Web endpoint discovery ZAP 2.16.1 ✓ 0
Web endpoint discovery web-v1 Skipped 0 Not applicable to target
Web security scan (ZAP) ZAP 2.16.1 ✓ 4
Credential check auditon-audit-v1 Skipped 0 Not applicable to target
Log analysis auditon-audit-v1 Skipped 0 Not applicable to target