[CL-SEC] аудит Q2: admin-secret + 2FA гейты на money-маршрутах (force-expire/refund/reject) #781
No reviewers
Labels
No labels
ci-failing
duplicate
needs-rebase
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
europa-tech-srl/europatech!781
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/claude-sec-q2-payment-secret-gate"
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?
Что сделано
Квартальный security-аудит (2026-Q2, OWASP). Закрыты 2 CRITICAL по admin money-маршрутам:
requireAdminSecretVerifiedдобавлен наPOST /payments/:id/force-expire(освобождает зарезервированные доли) и/payments/:id/refund(возврат средств) — раньше gate был только у соседних force-complete/change-status. Regression-тестadmin.payments.routes.test.ts.POST /payouts/:id/reject— отклонение кредитует EUR-баланс (income-payout/admin-operations.ts:144), но не требовало 2FA ни при какой сумме (в отличие от approvePayout). Добавлен тот же порогPAYOUT_2FA_THRESHOLD_EUR+twoFactorCodeвrejectPayoutSchema. Тесты вadmin.payouts.controller.test.ts.Отчёт:
docs/security/audit-2026-Q2.md.Зачем
Скомпрометированная admin-сессия без admin-secret/TOTP могла освобождать доли, возвращать средства и начислять баланс через reject. Асимметрия защиты на путях с реальными деньгами.
План тестирования
vitestadmin.payments.routes (4/4), admin.payouts.controller (17/17), schemas coverage (5/5).tsc --noEmitclean,eslint --max-warnings 0clean.Где могу ошибаться
_skipOtpservice-layer, #4 KYC TOCTOU, #5 NOWPayments ordering) — это multi-file рефакторы с regression-риском на cron/webhook путях; вынесены в follow-up PR после merge этого, чтобы diff оставался review-able. Список в отчёте.Access review (Task 2) — выполнено отдельно на prod
0 inactive ADMIN (3/3 active, никого не удалял), 1 unused API key revoked (
ek_live_987f), PM2 env audit-даты → 2026-06-20.[CL-SEC] аудит Q2: admin-secret gate на force-expire/refund платёжных маршрутовto [CL-SEC] аудит Q2: admin-secret + 2FA гейты на money-маршрутах (force-expire/refund/reject)