Security: no security contact or escalation path for users reporting suspicious trades or UI states [SEC-A07] #392
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#392
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Checklist Item
SEC-A07: Create a concise security contact/escalation path for users reporting suspicious trades or UI states. Verify: visible docs issue/MR with contact path and expected response window.
Summary
There is no security contact, responsible disclosure policy, or user-accessible escalation path anywhere in the repo or dApp. A user who sees a suspicious trade, unexpected balance, or broken UI state has no documented way to report it and no expectation of when or how they will receive a response.
What Was Checked
README.md-- no security contactSECURITY.mdfile.gitlab/issue_templates/-- no public-facing security report templatedocs/security-model.md-- threat model and mitigations only, no contact or disclosure sectiondocs/templates/incident-dex-indexer.md-- internal operator template, not user-accessiblefrontend-dapp/src/components/legal/LegalFooterNotice.tsx-- NFA copy only, no contact linkfrontend-dapp/src/components/common/navItems.ts-- no Help, About, or Contact page in navigationfrontend-dapp/src/components/common/Layout.tsx-- footer shows branding and legal notice onlydocs/reviews/20260409T030009Z/ISSUE_TEMPLATES/security.md-- internal review template, not a public GitLab issue templateExpected (per checklist)
A concise security contact and escalation path must exist that is visible to users. It must include: how to report a suspicious trade or UI state, who to contact (email, Discord, GitLab issue, or equivalent), and an expected response window. It must be accessible from the dApp or from a linked docs page.
Actual
None of the above exists. No email, Discord, Telegram, or named contact is published anywhere in the repo or dApp. No responsible disclosure policy exists. No response window is documented. No public GitLab issue template for security reports exists. The dApp navigation has no Help or Contact page. The footer has no link to any reporting channel.
Evidence
SECURITY.mdfilefrontend-dapp/src/components/legal/LegalFooterNotice.tsxlines 3-9: plain text only, no link or contactfrontend-dapp/src/components/common/navItems.ts: routes are Swap, Pool, Limits, Trade, Portfolio, Charts, Trader, Protocol, Tiers, Create Pair -- no Help or Contactdocs/security-model.md: 197 lines covering threat model, no user contact sectionCODEOWNERS: only@PlasticDigitslisted, no security alias or dedicated contact roleSuggested Fix
Create a
SECURITY.mdat the repository root containing:securitylabel, Discord handle, or email)Add a public GitLab issue template at
.gitlab/issue_templates/security_report.mdso users have a structured way to submit reports.Link the security contact from the dApp -- either add a "Report an issue" link to
LegalFooterNotice.tsxpointing to the GitLab security report template, or add a Help/Contact entry to the nav pointing toSECURITY.md.Verification Checklist
Steps to confirm the fix is complete and the checklist item can be marked done.
SECURITY.mdexists at repository root with contact channel and response window.gitlab/issue_templates/Labels
security,pre-launchCc: @PlasticDigits
mentioned in issue #381
Can use contact@ceramicliberty.com for now.
mentioned in commit
8bc9972aa5mentioned in merge request !918
mentioned in commit
fcc9eaf601mentioned in merge request !919
mentioned in merge request !915
Verification — SEC-A07 (#392)
Result: PASS (all acceptance criteria met on
main; no repo changes required)Checklist
SECURITY.mdat repo root with contact channel and response windowtest -f SECURITY.md; content includescontact@ceramicliberty.com, GitLabsecurity_reporttemplate URL, 48–72 hour acknowledgement.gitlab/issue_templates/test -f .gitlab/issue_templates/security_report.md; frontmatter hassecuritylabel and structured report fieldsLegalFooterNotice.tsxfooter link Report suspicious activity →SECURITY_REPORT_ISSUE_URL; rendered in desktop footer and mobile legal strip (Layout.tsx); unit test asserts href/target/relgrep '48–72 hours' SECURITY.md; mirrored indocs/qa-onboarding.md§ Security EscalationSECURITY.md§ Responsible disclosure — do not publish exploit details before contactCommands run
Unit tests: 3/3 passed (including GitLab security-template link).
Manual
Live
make devfooter click-through was not run (nofrontend-dapp/.env.localon this VM). Footer link behavior is covered byLegalFooterNotice.test.tsxand component wiring inLayout.tsx. GitLab new-issue URL returns expected auth redirect for anonymouscurl(template path is valid).Cross-links reviewed
README.md→SECURITY.mddocs/README.md,docs/security-model.md§ User security contactdocs/qa-onboarding.md§ Security Escalationskills/AGENTS_SECURITY_CONTACT.mdplaybook with invariants and verification commandsClosing as complete.
mentioned in issue #663