Summary
/api/push_all correctly calls check_platform_limit before publishing, but /api/publish and /api/publish_post do not. A free-tier user can bypass plan enforcement entirely by calling /api/publish directly.
Impact
Billing bypass on a SaaS product. Free users gain unlimited platform access.
Fix
Add check_platform_limit (or a shared @require_plan guard) to /api/publish and /api/publish_post the same way it's applied in api_push_all.
Effort: ~5 minutes
Part of full audit: #1
Summary
/api/push_allcorrectly callscheck_platform_limitbefore publishing, but/api/publishand/api/publish_postdo not. A free-tier user can bypass plan enforcement entirely by calling/api/publishdirectly.Impact
Billing bypass on a SaaS product. Free users gain unlimited platform access.
Fix
Add
check_platform_limit(or a shared@require_planguard) to/api/publishand/api/publish_postthe same way it's applied inapi_push_all.Effort: ~5 minutes