Unblock CI security stage: gitleaks fixture allowlist, anyhow + ws advisories (#421) #980
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!980
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "qa/421-ci-security-stage-green"
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?
Closes the security-stage script failures I flagged on #421. Three separate things, all gating the same cascade — when any security job exits non-zero the whole
teststage is skipped, so the #421 functional gates never even run.gitleaks
generic-api-keywas flagging the syntheticterra1ustcquote293fixture inindexer/tests/common/mod.rs:384(the #293 route-slippage seed) as a leaked secret. The.gitleaks.tomlsecret-allowlist already exemptsterra1[a-z0-9]{38,}for real on-chain addresses; short test addresses fall under the bound. Widened it to{10,}so synthetic fixtures are covered too. Re-ranscripts/ci/gitleaks-scan-tracked.sh --verbose→ no leaks found.cargo-audit (indexer)
anyhow1.0.102 tripped RUSTSEC-2026-0190 (unsoundness inError::downcast_mut(), published 06-25). Bumped to 1.0.103, lockfile-only.cargo audit --deny warningsexit 0; indexer lib 158/0.npm-audit (frontend)
ws<=7.5.10 (high, memory-exhaustion DoS) plusundiciandesbuilddev-server advisories.npm audit fix— lockfile-only (ws 7.5.11, undici 7.28.0, esbuild 0.27.7),package.jsonuntouched. The cosmjs/uuid moderate chain stays as the pre-accepted risk indocs/supply-chain-security.md; it's below the--audit-level=highgate.npm audit --audit-level=high --omit=devexit 0,tsc -bclean.Heads up — pipeline can't actually go green yet
Independent of these fixes, every main pipeline since ~14:50 is failing with
failure_reason=ci_quota_exceededacross all jobs (the shared-runner minutes are out). So this MR clears the script failures, but the pipeline still won't run green until the runner minutes/billing get sorted. Flagging that separately on the issue.assigned to @Brouie
changed the description
mentioned in issue #421
Security review — MR !980
Commit reviewed:
1b5a035974b8de1372d45e6cc979fe92fe3c352dBase:
d5f277e85ddbd63bba6d4f01becd58fa66df4dc2Scope
.gitleaks.toml— widenterra1secret allowlist ({38,}→{10,}) for synthetic test fixturesindexer/Cargo.lock—anyhow1.0.102 → 1.0.103 (RUSTSEC-2026-0190)frontend-dapp/package-lock.json—npm audit fix(ws7.5.11,undici7.28.0, transitive Babel/js-yaml bumps)Analysis
Gitleaks allowlist —
regexTarget = "secret"only suppresses matches whose captured secret matchesterra1[a-z0-9]{10,}. Real on-chain addresses were already covered at{38,}; the change unblocks short synthetic fixtures in test data (e.g.terra1factory,terra1pairrouteabc). No attacker-controlled input reaches this control; exploitation would require a malicious insider deliberately crafting aterra1-prefixed high-entropy string to evadegeneric-api-key, while BIP39/JWT/other default rules remain active. A path-scoped allowlist forindexer/tests/**would be tighter, but this is a CI false-positive fix, not a runtime authz or injection change.anyhowbump — Remediates published unsoundness (Error::downcast_mut()); indexer does not calldowncast_mut. Net security improvement.npm lockfile — Resolves known advisories (
wsmemory-exhaustion DoS,undici/esbuilddev-server issues).wsis a WalletConnect peer dep; production audit gate uses--omit=dev. No new production dependency surface or downgrades introduced.Outcome
FINDINGS: 0 medium+
Security review: no medium+ findings on this diff. No inline threads.
Prior MR security comments: none to re-validate.
mentioned in commit
c1c5b9cf33