Skip to content

fix(analytics): Add authentication to record_metric functions - #325

Merged
dultimateade merged 2 commits into
dultimateade:mainfrom
swantaafuwai-hub:fix/analytics-auth-vulnerability
Oct 22, 2026
Merged

dultimateade merged 2 commits into
dultimateade:mainfrom
swantaafuwai-hub:fix/analytics-auth-vulnerability

Conversation

@swantaafuwai-hub

Copy link
Copy Markdown
Contributor

closes #180
closes #184
closes #183
closes #178

Fixes critical vulnerability where record_metric and record_metric_at allowed any account to write arbitrary metrics. Implements whitelist-based authorization with admin-controlled reporters.

Changes:

  • Add initialize() function with admin setup
  • Add add/remove_authorized_reporter() for reporter management
  • Protect record_metric() with authorization check
  • Protect record_metric_at() with authorization check and require_auth()
  • Add is_authorized_reporter() query function
  • Prevent duplicate metric entries
  • Add comprehensive auth boundary tests (24 test cases)

Security properties:

  • Only whitelisted reporters can record metrics
  • Admin-controlled reporter whitelist
  • Immutable audit trail (metrics cannot be modified)
  • Duplicate prevention
  • Soroban require_auth() enforcement

Documentation:

  • ANALYTICS_AUTH_FIX.md: Detailed fix explanation and integration guide
  • ANALYTICS_FIX_VERIFICATION.md: Complete security verification

Impact: HIGH - Closes data integrity vulnerability

Fixes critical vulnerability where record_metric and record_metric_at
allowed any account to write arbitrary metrics. Implements whitelist-based
authorization with admin-controlled reporters.

Changes:
- Add initialize() function with admin setup
- Add add/remove_authorized_reporter() for reporter management
- Protect record_metric() with authorization check
- Protect record_metric_at() with authorization check and require_auth()
- Add is_authorized_reporter() query function
- Prevent duplicate metric entries
- Add comprehensive auth boundary tests (24 test cases)

Security properties:
- Only whitelisted reporters can record metrics
- Admin-controlled reporter whitelist
- Immutable audit trail (metrics cannot be modified)
- Duplicate prevention
- Soroban require_auth() enforcement

Documentation:
- ANALYTICS_AUTH_FIX.md: Detailed fix explanation and integration guide
- ANALYTICS_FIX_VERIFICATION.md: Complete security verification

Impact: HIGH - Closes data integrity vulnerability
@drips-wave

drips-wave Bot commented Oct 21, 2026

Copy link
Copy Markdown

@swantaafuwai-hub Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@dultimateade
dultimateade merged commit 13d5146 into dultimateade:main Oct 22, 2026
0 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment