Agentic Testari Sentinel Hub · FriendlyAI agentictestari.com
Confidential
L3 MAX Public-max · non-destructive

Public surface assessment — Twoday

Marketing + dual VPN were only part of the surface. True L3 finds AOS runtime secrets, Metis Chat Open WebUI, GitLab, Jira and more on brand DNS. HIGH 8 · MEDIUM 4.

Target twoday.com Date 2026-07-29 RoE public-max · non-destructive Engagement eng_twoday_l3_1358
8
HIGH
4
MEDIUM
0
INFO
OK

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.

Each finding includes: problem, where (clickable link), attacker/agent impact, owner, PoC (read-only), how to fix, and how to validate.

Marketing + dual VPN were only part of the surface. True L3 finds AOS runtime secrets, Metis Chat Open WebUI, GitLab, Jira and more on brand DNS. HIGH 8 · MEDIUM 4.

Stack in this run

ComponentUsedNote
ParviClaw Core + AWPYES (lab)full pack on engagement
ParviSight browserpartialHTTP walk / agentic
PayBotFin Witness liveas engagedhonest 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.

TW-H1

AOS prod/dev/staging + runtime-env secrets

HIGH
The problem

https://aos.twoday.com, aos-dev, aos-staging serve “Agentic Orchestration Studio”. Public /runtime-env.js leaks VITE_AZURE_CLIENT_ID, VITE_AZURE_TENANT_ID, and production VITE_SENTRY_DSN. last_reprobe=2026-07-31.

Public engineering/tooling yields free recon (versions, configs, APIs).

What an attacker or hacker agent can do
  • Human: Public eng surface on twoday.com expands attacker recon.
  • Agent (LLM+tools): Probe APIs/health in loops; correlate versions with CVEs.
  • If invasive/destructive: Source/secrets/CI risk if auth weak later. L3 only proves public exposure.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://aos.twoday.com'
How to fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

How to validate the fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

TW-H2

Metis Chat Open WebUI public

HIGH
The problem

https://metis-chat.twoday.com (uvicorn) identifies as Open WebUI 0.10.2; /api/config returns JSON including Microsoft OAuth providers. last_reprobe=2026-07-31.

Public engineering/tooling yields free recon (versions, configs, APIs).

What an attacker or hacker agent can do
  • Human: Public eng surface on twoday.com expands attacker recon.
  • Agent (LLM+tools): Probe APIs/health in loops; correlate versions with CVEs.
  • If invasive/destructive: Source/secrets/CI risk if auth weak later. L3 only proves public exposure.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://metis-chat.twoday.com'
How to fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

How to validate the fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

TW-H3

GitLab public (gitlab.fi.twoday.com)

HIGH
The problem

https://twoday.com/ — Redirects to /users/sign_in — GitLab is internet-facing. last_reprobe=2026-07-31.

Public engineering/tooling yields free recon (versions, configs, APIs).

What an attacker or hacker agent can do
  • Human: Public eng surface on twoday.com expands attacker recon.
  • Agent (LLM+tools): Probe APIs/health in loops; correlate versions with CVEs.
  • If invasive/destructive: Source/secrets/CI risk if auth weak later. L3 only proves public exposure.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://twoday.com/'
How to fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

How to validate the fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

TW-H4

Jira public (jira.twoday.com)

HIGH
The problem

https://twoday.com/ response headers — JIRA 10.3.23 fingerprint; issues cookies/session headers on contact. last_reprobe=2026-07-31.

Public engineering/tooling yields free recon (versions, configs, APIs).

What an attacker or hacker agent can do
  • Human: Public eng surface on twoday.com expands attacker recon.
  • Agent (LLM+tools): Probe APIs/health in loops; correlate versions with CVEs.
  • If invasive/destructive: Source/secrets/CI risk if auth weak later. L3 only proves public exposure.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://twoday.com/'
How to fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

How to validate the fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

TW-H5

Insight Flow prod+dev public

HIGH
The problem

https://insightflow.twoday.com and insightflow.dev.twoday.com (Kestrel) return product UI. last_reprobe=2026-07-31.

Public brand surface on twoday.com expands recon until closed.

What an attacker or hacker agent can do
  • Human: Public edge surface on twoday.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.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://insightflow.twoday.com'
How to fix

Remove unnecessary public hosts on twoday.com DNS or enforce strong auth/WAF; re-test from internet.

How to validate the fix

Remove unnecessary public hosts on twoday.com DNS or enforce strong auth/WAF; re-test from internet.

TW-H6

lut.twoday.com IIS 500

HIGH
The problem

https://twoday.com/ — Microsoft-IIS/10.0 Internal Server Error on brand host. last_reprobe=2026-07-31.

Public brand surface on twoday.com expands recon until closed.

What an attacker or hacker agent can do
  • Human: Public edge surface on twoday.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.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://twoday.com/'
How to fix

Remove unnecessary public hosts on twoday.com DNS or enforce strong auth/WAF; re-test from internet.

How to validate the fix

Remove unnecessary public hosts on twoday.com DNS or enforce strong auth/WAF; re-test from internet.

TW-H7

Contracts Zefort public

HIGH
The problem

https://twoday.com/ — Contract UI (noindex) on brand DNS. last_reprobe=2026-07-31.

Public engineering/tooling yields free recon (versions, configs, APIs).

What an attacker or hacker agent can do
  • Human: Public eng surface on twoday.com expands attacker recon.
  • Agent (LLM+tools): Probe APIs/health in loops; correlate versions with CVEs.
  • If invasive/destructive: Source/secrets/CI risk if auth weak later. L3 only proves public exposure.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://twoday.com/'
How to fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

How to validate the fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

TW-H8

Thin marketing CSP

HIGH
The problem

https://twoday.com/ response headers — www CSP does not constrain scripts. last_reprobe=2026-07-31.

Weak browser security headers increase impact of XSS/clickjacking/MITM.

What an attacker or hacker agent can do
  • Human: Public headers surface on twoday.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.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://twoday.com/' | egrep -i 'strict-transport|content-security|x-frame|x-content'
How to fix

Add/tighten HSTS, CSP, XFO, nosniff, Referrer-Policy, Permissions-Policy on https://twoday.com/.

How to validate the fix

Add/tighten HSTS, CSP, XFO, nosniff, Referrer-Policy, Permissions-Policy on https://twoday.com/.

TW-M1

DMARC quarantine not reject

MEDIUM
The problem

DNS TXT at _dmarc.twoday.com publishes a DMARC policy with p=none (monitor-only). Receiving servers do not quarantine/reject forged @twoday.com mail on DMARC fail. This is email brand spoofing / BEC risk, not a website bug. Proof: dig TXT _dmarc.twoday.com +short last_reprobe=2026-07-31.

Brand email spoofing / BEC remains easier while DMARC on twoday.com is not reject.

Where

DNS record (not a website): _dmarc.twoday.com TXT
Mail domain: @twoday.com

What an attacker or hacker agent can do
  • Human: Forge invoices / IT resets as @twoday.com while p=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).
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

dig TXT _dmarc.twoday.com +short
How to fix

Align SPF/DKIM for all legitimate senders; move DMARC to p=quarantine then p=reject; monitor rua; document third-party senders.

How to validate the fix

Align SPF/DKIM for all legitimate senders; move DMARC to p=quarantine then p=reject; monitor rua; document third-party senders.

TW-M2

Large product host estate

MEDIUM
The problem

holidaybalancefinland, insights/Sociuu, metis, metis-docs-mcp, get.help Atlassian, etc. last_reprobe=2026-07-31.

Public engineering/tooling yields free recon (versions, configs, APIs).

What an attacker or hacker agent can do
  • Human: Public eng surface on twoday.com expands attacker recon.
  • Agent (LLM+tools): Probe APIs/health in loops; correlate versions with CVEs.
  • If invasive/destructive: Source/secrets/CI risk if auth weak later. L3 only proves public exposure.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://twoday.com/'
How to fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

How to validate the fix

Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on twoday.com.

TW-M3

HubSpot sourcemaps

MEDIUM
The problem

Several hsstatic *.js.map downloadable. (surface: https://twoday.com/). last_reprobe=2026-07-31.

Public brand surface on twoday.com expands recon until closed.

What an attacker or hacker agent can do
  • Human: Public edge surface on twoday.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.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://twoday.com/'
How to fix

Remove unnecessary public hosts on twoday.com DNS or enforce strong auth/WAF; re-test from internet.

How to validate the fix

Remove unnecessary public hosts on twoday.com DNS or enforce strong auth/WAF; re-test from internet.

TW-M4

Permissions-Policy gaps

MEDIUM
The problem

Other headers largely present; permissions-policy not observed. (surface: https://twoday.com/). last_reprobe=2026-07-31.

Public brand surface on twoday.com expands recon until closed.

What an attacker or hacker agent can do
  • Human: Public edge surface on twoday.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.
Who owns it

Twoday — security / product / infrastructure (confirm internal owner)

PoC (proof — does not fix)

Read-only. Does not change the system.

curl -sSI 'https://twoday.com/'
How to fix

Remove unnecessary public hosts on twoday.com DNS or enforce strong auth/WAF; re-test from internet.

How to validate the fix

Remove unnecessary public hosts on twoday.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.

1) awp-receipt.json — AWP crypto

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

2) leaves.jsonl — engagement diary

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)

3) retest-raw.json — HTTP probes

What it is: status/headers/samples from public-max probes.
What it proves: what the internet saw during the run.
→ download retest-raw.json

4) agentic-walk.json — surface map

What it is: multi-page walk summary (URLs, sizes, forms).
→ download agentic-walk.json · core-export.json

5) folder

→ open full evidence folder · engagement eng_twoday_l3_retest_1361 · witness_mode local_awp_dev (DEV_LAB keys — not production ceremony).

How to use / verify AWP (open-source)

Client steps
  1. Download awp-receipt.json from the annex (or clone the evidence folder).
  2. 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

  1. Close HIGH public exposures first (auth / VPN / DNS / policy).
  2. Fix MEDIUM headers, mail policy, and non-prod exposure.
  3. Re-test every PoC from the public internet until closed.
  4. Archive AWP/evidence pack for audit and retest baseline.