Security: dApp footer links to public security posture docs (#387) #915
No reviewers
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic!915
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue-387-footer-security-posture-link"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Addresses SEC-A01 (#387): the dApp footer now links to a consolidated public security posture document.
docs/security-posture.mdcovering capped launch expectations, unaudited/limited-audit language, admin controls, known residual risks, and TVL-scaled security requirements (attack economics turn negative at low TVL; controls escalate as TVL grows).LegalFooterNoticetoSECURITY_POSTURE_DOC_URL(DOCS_GITLAB_BASE/security-posture.md) withtarget="_blank"andrel="noopener noreferrer".security-model.md,contracts-security-audit.md,frontend.md,docs/README.md, andskills/AGENTS_FRONTEND_TRUST_BOUNDARIES.md.Acceptance checklist
LegalFooterNotice.tsximports doc URL fromconstants.tsgrep SECURITY_POSTURE_DOC_URL frontend-dapp/src/components/legal/LegalFooterNotice.tsxnpm run test:run -- src/components/legal/__tests__/LegalFooterNotice.test.tsxsecurity-posture.mdtarget="_blank",rel, href suffixapp-footer-shell/app-mobile-legal-strip(existing Layout); manual: load/at 375px and 1280pxnpm run test:run -- src/components/legal/__tests__/Third-party verification
Manual (with
make dev):http://127.0.0.1:5173/on desktop and mobile viewport.docs/security-posture.mdin a new tab.Blockers
None.
changed the description
Security review — MR !915
Commit reviewed:
7b423fdea7d57c625702acbfa412d161e0a05a2cScope:
docs/security-posture.md,LegalFooterNotice.tsx,constants.ts(SECURITY_POSTURE_DOC_URL), unit test, doc cross-links.Outcome:
FINDINGS: 0medium+Method
Reviewed the full MR diff and traced attacker-controlled input to sinks in the changed frontend paths. Prior MR discussion threads: none (first security pass on this MR).
Changed attack surface
LegalFooterNotice.tsx)hrefis a compile-time constant (SECURITY_POSTURE_DOC_URL); link text is static. No user/query/env input reaches the anchor.constants.ts)DOCS_GITLAB_BASEandSECURITY_POSTURE_DOC_URLare hardcoded strings (same pattern as existing limit-order doc links). Not overridable viaVITE_*.target="_blank"rel="noopener noreferrer"present; unit test asserts both — mitigates tabnabbing /window.openerabuse.Injection / SSRF / XSS / deserialization
No plausible path from attacker-controlled input to HTML injection, open redirect, SSRF, or unsafe deserialization in this diff. The link is outbound navigation to a fixed GitLab docs URL; it does not trigger server-side or in-app fetches.
Inline threads
None — no medium, high, or critical findings to anchor on specific diff lines.
Security review: no medium+ findings on this diff.
Must have specific number ranges for different stages, so that communitt has a clear idea of low, growth, mature, and an understanding of when security costs will grow with scale. Numbers on tvl ranges for each stage eg growth is $x to $y tvl, research dex and exploits to categorize tvl based risks.
added 1 commit
6d45b115- docs: add explicit TVL bands to security posture (#387)Compare with previous version
Bugfix follow-up (commit
6d45b115)3471784225): add specific TVL number ranges for bootstrap / growth / mature, grounded in DEX exploit economicsdocs/security-posture.md§ Security requirements scale with TVL: explicit USD bands ($0–$1M bootstrap, $1M–$25M growth, $25M+ mature), indicative annual security spend per stage, exploit-cost / historical-loss context, and transition triggers (~$5M audit gate, ~$25M mature controls). Cross-links existing $100k per-pair TWAP floor.Tests:
npm run test:run -- src/components/legal/__tests__/LegalFooterNotice.test.tsx— PASS.Thread resolution: no inline diff threads were open (
glab mr note list 197 --state unresolvedempty). The top-level review note is not marked resolvable in GitLab API (resolvable: false); attempted resolve returned 403.Security review — MR !915 (re-run)
Commit reviewed:
6d45b1158c59dfa97f0b4e006f713e5b2bb68a7eScope: Full MR diff —
docs/security-posture.md(incl. TVL-band follow-up in6d45b115),LegalFooterNotice.tsx,constants.ts(SECURITY_POSTURE_DOC_URL), unit test, doc cross-links.Outcome:
FINDINGS: 0medium+Method
Re-reviewed the current MR head after the
6d45b115doc follow-up. Traced attacker-controlled input to sinks in changed frontend paths. Prior security pass (7b423fde) had zero medium+ findings; the follow-up commit is documentation-only (explicit TVL USD bands) and does not expand runtime attack surface.Changed attack surface
LegalFooterNotice.tsx)hrefis a compile-time constant (SECURITY_POSTURE_DOC_URL); link text is static. No user/query/env input reaches the anchor.constants.ts)DOCS_GITLAB_BASEandSECURITY_POSTURE_DOC_URLare hardcoded strings (same pattern as existing limit-order / audit doc links). Not overridable viaVITE_*.target="_blank"rel="noopener noreferrer"present; unit test asserts both — mitigates tabnabbing /window.openerabuse.docs/security-posture.md+ cross-linksInjection / SSRF / XSS / deserialization
No plausible path from attacker-controlled input to HTML injection, open redirect, SSRF, or unsafe deserialization in this diff. The link is outbound navigation to a fixed GitLab docs URL; it does not trigger server-side or in-app fetches.
Inline threads
None — no medium, high, or critical findings to anchor on specific diff lines.
Security review: no medium+ findings on this diff.
added 12 commits
mainfa9e5bc8- Merge origin/main into issue-387-footer-security-posture-link.Compare with previous version
Resolved merge conflicts with
main(4 files):docs/README.md— kept both security model contact link (#392) and public security posture entry (#387)docs/security-model.md— kept launch posture intro (#387) and user incident FAQ section (#390)LegalFooterNotice.tsx— footer now has all three links: security posture doc, incident FAQ, and report suspicious activityLegalFooterNotice.test.tsx— combined unit tests for all footer links (3 tests passing)Sanity check:
npm run test:run -- src/components/legal/__tests__/LegalFooterNotice.test.tsx— PASSSecurity review — MR !915
Commit reviewed:
fa9e5bc83ef766a551c5b256f72b3c00a17aabf6Scope: Full MR diff (9 files) —
docs/security-posture.md,LegalFooterNotice.tsx,constants.ts(SECURITY_POSTURE_DOC_URL), unit test, doc/skill cross-links.Outcome:
FINDINGS: 0medium+Method
Re-reviewed current MR head after merge of
origin/main(fa9e5bc8). Inspected the full diff and traced attacker-controlled input to sinks in changed frontend paths. Prior security passes on7b423fdeand6d45b115reported zero medium+ findings; this pass covers the updated head including the main merge resolution in the footer component.Changed attack surface
LegalFooterNotice.tsx)hrefis a compile-time constant (SECURITY_POSTURE_DOC_URL); link text is static JSX. No user, query, routing, or env input reaches the anchor.constants.ts)DOCS_GITLAB_BASEandSECURITY_POSTURE_DOC_URLare hardcoded strings (same pattern as existing limit-order and incident FAQ doc links). Not overridable viaVITE_*.target="_blank"rel="noopener noreferrer"present; unit test asserts both — mitigates tabnabbing /window.openerabuse.docs/security-posture.md+ cross-linksInjection / SSRF / XSS / deserialization
No plausible path from attacker-controlled input to HTML injection, open redirect, SSRF, or unsafe deserialization in this diff. The link is outbound navigation to a fixed GitLab docs URL on the project default branch; it does not trigger server-side or in-app fetches.
Inline threads
None — no medium, high, or critical findings to anchor on specific diff lines.
Security review: no medium+ findings on this diff.
mentioned in commit
13900236ec