Public surface assessment — NoA Ignite
Apex marketing cleaner than product hosts. True L3: Swagger on BFM prod, unauthenticated metrics API, SPA token/source-map class plus related brand tools. HIGH 5 · MEDIUM 4.
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.
Apex marketing cleaner than product hosts. True L3: Swagger on BFM prod, unauthenticated metrics API, SPA token/source-map class plus related brand tools. HIGH 5 · MEDIUM 4.
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.
Public Swagger UI on BFM prod API
HIGHhttps://bfm-app-prod.azurewebsites.net/swagger/index.html returns 200 Swagger UI for the production “Burn for Money” API. last_reprobe=2026-07-31.
Public engineering/tooling yields free recon (versions, configs, APIs).
https://bfm-app-prod.azurewebsites.net/swagger/index.html · https://bfm-app-prod.azurewebsites.net
- Human: Public eng surface on noaignite.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.
NoA Ignite — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://bfm-app-prod.azurewebsites.net/swagger/index.html'
Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on noaignite.com.
Remove from public DNS or require VPN/SSO; disable anonymous APIs; re-test from the public internet on noaignite.com.
Unauthenticated org metrics API
HIGHhttps://noaignite.com/ — What / evidence: GET /public/api/totalnumbers → 200 live JSON (distance/time/money/engagement). Fix: Auth or aggregate only last_reprobe=2026-07-31.
Public metrics leak ops data useful for targeting.
- Human: Public metrics surface on noaignite.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.
NoA Ignite — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://noaignite.com/'
Require auth on metrics/Grafana/Prometheus or put behind VPN; never expose raw metrics publicly.
Require auth on metrics/Grafana/Prometheus or put behind VPN; never expose raw metrics publicly.
BFM SPA + historical Contentful preview token risk
HIGHClient bundle https://bfm.noaignite.com/static/js/main.ef1f505e.js contains Contentful SDK init: - space: "r9sx20y0suod" - accessToken: "0cfdeec8…927fc4" (full value in bundle) - host: "preview.contentful.com" (Preview API, not delivery CDN) The matching source map (main.ef1f505e.js.map, ~8.5 MB) is also publicly downloadable, making reverse-engineering trivial. last_reprobe=2026-07-31.
Public brand surface on noaignite.com expands recon until closed.
https://bfm.noaignite.com/static/js/main.ef1f505e.js · https://bfm.noaignite.com · https://preview.contentful.com
- Human: Public edge surface on noaignite.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.
NoA Ignite — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://bfm.noaignite.com/static/js/main.ef1f505e.js'
Remove unnecessary public hosts on noaignite.com DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on noaignite.com DNS or enforce strong auth/WAF; re-test from internet.
OIDC metadata / implicit grant surface
HIGHhttps://noaignite.com/ — What / evidence: OpenID config advertised on API (deep + prior). Fix: Auth code+PKCE only last_reprobe=2026-07-31.
Public auth/federation edges expand phishing and IdP attack surface.
- Human: Public auth surface on noaignite.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.
NoA Ignite — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://noaignite.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.
deskreservation public
HIGHGET https://bfm-app-prod.azurewebsites.net/.well-known/openid-configuration → 200** JSON documenting issuer, authorization/userinfo endpoints, JWKS URI, grant types (implicit supported). last_reprobe=2026-07-31.
Public auth/federation edges expand phishing and IdP attack surface.
https://bfm-app-prod.azurewebsites.net/.well-known/openid-configuration · https://bfm-app-prod.azurewebsites.net
- Human: Public auth surface on noaignite.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.
NoA Ignite — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://bfm-app-prod.azurewebsites.net/.well-known/openid-configuration'
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.
test.noaignite.com Netlify public
MEDIUMtest.noaignite.com Netlify public (surface: https://noaignite.com/). last_reprobe=2026-07-31.
Public brand surface on noaignite.com expands recon until closed.
- Human: Public edge surface on noaignite.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.
NoA Ignite — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://noaignite.com/'
Remove unnecessary public hosts on noaignite.com DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on noaignite.com DNS or enforce strong auth/WAF; re-test from internet.
retailor 401 public edge
MEDIUMauth-required but internet-reachable (surface: https://noaignite.com/). last_reprobe=2026-07-31.
Public brand surface on noaignite.com expands recon until closed.
- Human: Public edge surface on noaignite.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.
NoA Ignite — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://noaignite.com/'
Remove unnecessary public hosts on noaignite.com DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on noaignite.com DNS or enforce strong auth/WAF; re-test from internet.
Thin marketing CSP / missing nosniff samples
MEDIUMThin marketing CSP / missing nosniff samples (surface: https://noaignite.com/). last_reprobe=2026-07-31.
Weak browser security headers increase impact of XSS/clickjacking/MITM.
- Human: Public headers surface on noaignite.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.
NoA Ignite — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://noaignite.com/' | egrep -i 'strict-transport|content-security|x-frame|x-content'
Add/tighten HSTS, CSP, XFO, nosniff, Referrer-Policy, Permissions-Policy on https://noaignite.com/.
Add/tighten HSTS, CSP, XFO, nosniff, Referrer-Policy, Permissions-Policy on https://noaignite.com/.
Careers multi-country hosts
MEDIUMCareers multi-country hosts (surface: https://noaignite.com/). last_reprobe=2026-07-31.
Public brand surface on noaignite.com expands recon until closed.
- Human: Public edge surface on noaignite.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.
NoA Ignite — security / product / infrastructure (confirm internal owner)
Read-only. Does not change the system.
curl -sSI 'https://noaignite.com/'
Remove unnecessary public hosts on noaignite.com DNS or enforce strong auth/WAF; re-test from internet.
Remove unnecessary public hosts on noaignite.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_noaignite_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.