Security Assessment Report
Vulnerability findings for the public-facing infrastructure of overdrive.co.za
01 Executive overview Severity distribution across 29 findings
02 Top findings Ranked by severity, then by exposure
The following items represent the highest-impact issues identified during the assessment and are the primary candidates for remediation in the next change window.
| # | Severity | Finding | Affected | Instances |
|---|---|---|---|---|
| 01 | Medium | Content Security Policy (CSP) Header Not Set | overdrive.co.za | 1 |
| 02 | Medium | Missing Anti-clickjacking Header | overdrive.co.za | 1 |
| 03 | Medium | Sub Resource Integrity Attribute Missing | overdrive.co.za | 5 |
| 04 | Low | Strict-Transport-Security Header Not Set | overdrive.co.za (+ 4 paths) | 5 |
| 05 | Low | Cookie without SameSite Attribute | overdrive.co.za (+ 4 paths) | 5 |
| 06 | Low | Cross-Domain JavaScript Source File Inclusion | overdrive.co.za | 5 |
| 07 | Low | Dangerous JS Functions eval | overdrive.co.za | 1 |
03 Findings Detailed observations, ordered by severity
Each finding records what was observed, where it was observed, and the supporting evidence captured by the scanning toolchain. Recommended remediations are noted where the source tool provided them; remediation effort is an analyst estimate.
Content Security Policy (CSP) Header Not Set
Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. The response from the target does not include a Content-Security-Policy header, leaving the browser without an explicit allow-list for sources of executable script, styles, frames, and embeddable objects.
Configure the web server, application server, or load balancer to set a Content-Security-Policy response header on all HTML responses. Begin in report-only mode to surface violations without breaking functionality, then promote to enforcement.
- developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP
- cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html
- w3.org/TR/CSP/
Missing Anti-clickjacking Header
The response does not protect against ClickJacking attacks. It should include either a Content-Security-Policy with a frame-ancestors directive, or an X-Frame-Options header.
Set X-Frame-Options: SAMEORIGIN for pages that may be embedded by your own site, or DENY for pages that should never be framed. The modern equivalent is Content-Security-Policy: frame-ancestors 'self'.
- developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options
Sub Resource Integrity Attribute Missing
The integrity attribute is missing on script and link tags served from external sources. The integrity attribute prevents an attacker who has gained access to a third-party server from injecting malicious content.
Provide a valid integrity attribute (SHA-256 / SHA-384 / SHA-512 hash) plus crossorigin="anonymous" on every external stylesheet and script tag. Where the asset is served from your own infrastructure, prefer pinning the path or moving the asset in-house.
Strict-Transport-Security Header Not Set
HTTP Strict Transport Security (HSTS) is a web security policy mechanism whereby a web server declares that complying user agents must interact with it using only secure HTTPS connections. The response does not include a Strict-Transport-Security header, so a downgrade attack from HTTPS to plaintext HTTP is possible on the first visit.
Add Strict-Transport-Security: max-age=63072000; includeSubDomains; preload to all HTTPS responses, after verifying that all subdomains are HTTPS-capable.
Cookie without SameSite Attribute
The __wpdm_client cookie is set without a SameSite attribute, which means the cookie can be sent as a result of a cross-site request. SameSite is an effective counter-measure against CSRF, cross-site script inclusion, and timing attacks.
Cross-Domain JavaScript Source File Inclusion
The page includes script files from a third-party domain. If the third-party origin is compromised, attacker-controlled JavaScript executes in your origin's context.
- /wp-content/plugins/download-manager/assets/js/front.min.js?ver=3.3.54
- /wp-content/plugins/download-manager/assets/js/wpdm.min.js
- /wp-content/plugins/multiline-files-for-contact-form-7/js/zl-multine-files.js
- /wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1
- /wp-includes/js/jquery/jquery.min.js?ver=3.7.1
Cross-Origin-Embedder-Policy Header Missing or Invalid
The Cross-Origin-Embedder-Policy header is a response header that prevents a document from loading any cross-origin resources that do not explicitly grant the document permission via CORP or CORS.
Cross-Origin-Opener-Policy Header Missing or Invalid
The Cross-Origin-Opener-Policy header allows a site to control whether other documents share the same browsing context. Sharing a browsing context with untrusted documents can lead to data leaks via window references.
Cross-Origin-Resource-Policy Header Missing or Invalid
Cross-Origin-Resource-Policy is an opt-in header designed to counter side-channel attacks like Spectre. Resources should explicitly state that they may be loaded across origins, otherwise they should be marked as same-origin.
Dangerous JS Functions
A dangerous JavaScript function (eval) appears to be in use on the page. eval executes a string as code; if any part of the input string is attacker-influenced, this becomes an XSS sink. Often present inside vendor or plugin scripts.
Permissions Policy Header Not Set
The Permissions Policy header restricts which browser features (camera, microphone, geolocation, etc.) the page is allowed to use. The header is not set, so default permissions apply.
Timestamp Disclosure — Unix
Timestamps were disclosed by the application in plaintext form. Exposed values resolve to dates in 2025-03 and 2026-04, suggesting build/deploy or last-modified markers leaking through cache-busting query strings.
X-Content-Type-Options Header Missing
The Anti-MIME-Sniffing header X-Content-Type-Options was not set to nosniff. This allows older browsers to perform MIME-sniffing on the response body, potentially interpreting it as a content type other than the declared one.
04 Network exposure 11 informational findings · 129.232.138.226
Open service ports observed on the target host. Each is informational; the question for the reviewer is whether each service is intended to be reachable from the public internet.
| # | Port | Service | Notes | Severity |
|---|---|---|---|---|
| N-01 | tcp/21 | ftp | Plaintext file transfer; review necessity | Info |
| N-02 | tcp/22 | ssh | Restrict source IPs / disable password auth | Info |
| N-03 | tcp/80 | http | Redirects to https | Info |
| N-04 | tcp/110 | pop3 | Plaintext mail; prefer pop3s/imaps only | Info |
| N-05 | tcp/143 | imap | Plaintext mail; prefer pop3s/imaps only | Info |
| N-06 | tcp/443 | https | Primary web service | Info |
| N-07 | tcp/465 | smtps | Implicit-TLS submission | Info |
| N-08 | tcp/587 | submission | STARTTLS-capable mail submission | Info |
| N-09 | tcp/993 | imaps | TLS-protected IMAP | Info |
| N-10 | tcp/995 | pop3s | TLS-protected POP3 | Info |
| N-11 | tcp/443 | httpx → 301 | overdrive.co.za → www.overdrive.co.za (Apache) | Info |
05 Additional informational findings 5 items
| # | Finding | Affected | Instances |
|---|---|---|---|
| I-01 | Modern Web Application | overdrive.co.za | 1 |
| I-02 | Non-Storable Content | /downloads/, /dt_benefits/, /wp-snapshots/ | 3 |
| I-03 | Re-examine Cache-control Directives | /, /robots.txt, /sitemap.xml | 3 |
| I-04 | Session Management Response Identified | /, /downloads/ | 2 |
| I-05 | Storable and Cacheable Content | /, /robots.txt, /sitemap.xml | 4 |