Public surface assessment — Digia
HubSpot/Cloudflare marketing. Identity is the story: public Citrix ADC/Gateway, Entra SAML channels, admin SPAs, plus weak DMARC. True L3: HIGH 6 · MEDIUM 5.
Executive summary
Why act now
These findings are not theoretical: they are public surfaces a human or a hacker agent can consume today. Each card has proof links, impact, owner, fix, and validation — so the team takes risk seriously and acts.
HubSpot/Cloudflare marketing. Identity is the story: public Citrix ADC/Gateway, Entra SAML channels, admin SPAs, plus weak DMARC. True L3: HIGH 6 · MEDIUM 5.
Stack in this run
| Component | Used | Note |
|---|---|---|
| ParviClaw Core + AWP | YES (lab) | full pack on engagement |
| ParviSight browser | partial | HTTP walk / agentic |
| PayBotFin Witness live | as engaged | honest scope in annex |
Findings
Each finding includes: problem, where (clickable link), attacker/agent impact, owner, PoC (read-only), how to fix, and how to validate.
Citrix NetScaler/ADC Gateway (login.digia.com)
HIGHhttps://digia.com/ — What / evidence: Live 200 title “NetScaler AAA”; Citrix LogonPoint fingerprints confirmed 2026-07-29. Fix: Patch/MFA; shrink public gateway; prefer allowlists last_reprobe=2026-07-31.
Internet-facing remote-access edge is a permanent high-value target.
- Human: Internet-facing remote-access edge is a permanent high-value target.
- Agent (LLM+tools): Fingerprint appliance; CVE watch; clone login UX.
- If invasive/destructive: Closer to internal network than marketing CMS. L3 only proves public exposure.
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://digia.com/'
Patch appliance, enforce MFA + conditional access; prefer private/VPN allowlist; monitor CVE feeds.
Patch appliance, enforce MFA + conditional access; prefer private/VPN allowlist; monitor CVE feeds.
DMARC p=none
HIGHDNS TXT at _dmarc.digia.com publishes a DMARC policy with p=none (monitor-only). Receiving servers do not quarantine/reject forged @digia.com mail on DMARC fail. This is email brand spoofing / BEC risk, not a website bug. Proof: dig TXT _dmarc.digia.com +short last_reprobe=2026-07-31.
Brand email spoofing / BEC remains easier while DMARC on digia.com is not reject.
DNS record (not a website): _dmarc.digia.com TXT
Mail domain: @digia.com
- Human: Forge invoices / IT resets as
@digia.comwhilep=none. - Agent (LLM+tools): Re-check DMARC; automate brand-domain spoof campaigns.
- If invasive/destructive: Financial fraud via trusted-looking mail — not CMS takeover from this alone. L3 only proves DNS policy (dig).
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
dig TXT _dmarc.digia.com +short
Align SPF/DKIM for all legitimate senders; move DMARC to p=quarantine then p=reject; monitor rua; document third-party senders.
Align SPF/DKIM for all legitimate senders; move DMARC to p=quarantine then p=reject; monitor rua; document third-party senders.
Entra SAML channel hosts
HIGHWhat / evidence: https://channel.digia.com + channel-test.digia.com both 200 public. Fix: Remove test host; CA/VPN; review app regs last_reprobe=2026-07-31.
Public auth/federation edges expand phishing and IdP attack surface.
- Human: Public auth surface on digia.com expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://channel.digia.com'
Remove non-prod auth edges from public DNS; prefer auth code+PKCE; conditional access; minimize public metadata where possible.
Remove non-prod auth edges from public DNS; prefer auth code+PKCE; conditional access; minimize public metadata where possible.
Center hosts throw Shibboleth config errors
HIGHWhat / evidence: https://center.digia.com + centerstaging.digia.com → HTTP 500 shibsp::ConfigurationException (live). Fix: Fix or de-publicize last_reprobe=2026-07-31.
Public auth/federation edges expand phishing and IdP attack surface.
- Human: Public auth surface on digia.com expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://center.digia.com'
Remove non-prod auth edges from public DNS; prefer auth code+PKCE; conditional access; minimize public metadata where possible.
Remove non-prod auth edges from public DNS; prefer auth code+PKCE; conditional access; minimize public metadata where possible.
DFAU admin/backend public SPAs
HIGHWhat / evidence: https://admin.dfau.digia.com 200; backend.dfau.digia.com 200 “React App”. Fix: SSO + allowlist or private DNS last_reprobe=2026-07-31.
Public brand surface on digia.com expands recon until closed.
- Human: Public edge surface on digia.com expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://admin.dfau.digia.com'
Remove unnecessary public hosts on digia.com DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on digia.com DNS or enforce strong auth/WAF; re-test from internet.
Public non-prod/staging estate
HIGHExamples: https://centerstaging.digia.com (Apache 302), center.digia.com, historical annualreport*, digialab/dev signals in DNS. last_reprobe=2026-07-31.
Public brand surface on digia.com expands recon until closed.
- Human: Public edge surface on digia.com expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://centerstaging.digia.com'
Remove unnecessary public hosts on digia.com DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on digia.com DNS or enforce strong auth/WAF; re-test from internet.
Thin marketing CSP
MEDIUMupgrade-insecure-requests only on brochure (surface: https://digia.com/). last_reprobe=2026-07-31.
Weak browser security headers increase impact of XSS/clickjacking/MITM.
- Human: Public headers surface on digia.com expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://digia.com/' | egrep -i 'strict-transport|content-security|x-frame|x-content'
Add/tighten HSTS, CSP, XFO, nosniff, Referrer-Policy, Permissions-Policy on https://digia.com/.
Add/tighten HSTS, CSP, XFO, nosniff, Referrer-Policy, Permissions-Policy on https://digia.com/.
No security.txt / CAA gaps
MEDIUMdisclosure + issuance policy missing (surface: https://digia.com/). last_reprobe=2026-07-31.
Public brand surface on digia.com expands recon until closed.
- Human: Public edge surface on digia.com expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://digia.com/'
Remove unnecessary public hosts on digia.com DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on digia.com DNS or enforce strong auth/WAF; re-test from internet.
Missing nosniff/XFO samples
MEDIUMheader baseline incomplete on marketing (surface: https://digia.com/). last_reprobe=2026-07-31.
Weak browser security headers increase impact of XSS/clickjacking/MITM.
- Human: Public headers surface on digia.com expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://digia.com/' | egrep -i 'strict-transport|content-security|x-frame|x-content'
Add/tighten HSTS, CSP, XFO, nosniff, Referrer-Policy, Permissions-Policy on https://digia.com/.
Add/tighten HSTS, CSP, XFO, nosniff, Referrer-Policy, Permissions-Policy on https://digia.com/.
Extra edge ports / scan noise
MEDIUMhistorical 8080/8443-style listeners (surface: https://digia.com/). last_reprobe=2026-07-31.
Public brand surface on digia.com expands recon until closed.
- Human: Public edge surface on digia.com expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://digia.com/'
Remove unnecessary public hosts on digia.com DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on digia.com DNS or enforce strong auth/WAF; re-test from internet.
Third-party chat/bot IDs
MEDIUMLeadoo/HubSpot recon surface (surface: https://digia.com/). last_reprobe=2026-07-31.
Public brand surface on digia.com expands recon until closed.
- Human: Public edge surface on digia.com expands attacker recon.
- Agent (LLM+tools): Keep surface in continuous recon.
- If invasive/destructive: Escalate if second bug/credential. L3 public-max is read-only.
Digia Plc — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://digia.com/'
Remove unnecessary public hosts on digia.com DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on digia.com DNS or enforce strong auth/WAF; re-test from internet.
Evidence annexes (AWP + Core)
Real pack from L3 max retest 2026-07-31 (public-max, non-destructive). Each file has a caption. Links open the artifact.
What it is: signed Agent Witness Protocol receipt (offline-verifiable).
What it proves: integrity of our test/engagement log.
What it is NOT: not alone proof of the bug on your host (that is each finding’s PoC).
→ download awp-receipt.json
What it is: append-only leaves (scope, probes seal, catalog, quality, seal).
What it proves: timeline of this retest run.
→ download leaves.jsonl · leaf-chain.txt (PASS)
What it is: status/headers/samples from public-max probes.
What it proves: what the internet saw during the run.
→ download retest-raw.json
What it is: multi-page walk summary (URLs, sizes, forms).
→ download agentic-walk.json · core-export.json
→ open full evidence folder · engagement eng_digia_l3_retest_1361 · witness_mode local_awp_dev (DEV_LAB keys — not production ceremony).
How to use / verify AWP (open-source)
- Download
awp-receipt.jsonfrom the annex (or clone the evidence folder). - On any machine with Node 18+:
# from the evidence folder npx agent-witness-protocol verify awp-receipt.json # or with local package node /path/to/agent-witness-protocol/bin/awp.js verify awp-receipt.json
Honest PASS meaning: the receipt’s signature, Merkle inclusion, and checkpoint check out — the test log is intact.
PASS does NOT mean: your production bug is fixed, or that PayBotFin live network witness was used (this pack is local_awp_dev / DEV_LAB unless noted).
PayBotFin Witness: live network emit is optional and engagement-scoped. If not listed above as network_emit, do not claim live PayBot verification for this run.
Remediation order for the team
- Close HIGH public exposures first (auth / VPN / DNS / policy).
- Fix MEDIUM headers, mail policy, and non-prod exposure.
- Re-test every PoC from the public internet until closed.
- Archive AWP/evidence pack for audit and retest baseline.