Skip to content

fix(security): staging SSRF enforcement + SMS quota config robustness (codex review)#130

Merged
telivity-otaip merged 1 commit into
mainfrom
claude/secfix-staging-ssrf-sms
Jun 20, 2026
Merged

fix(security): staging SSRF enforcement + SMS quota config robustness (codex review)#130
telivity-otaip merged 1 commit into
mainfrom
claude/secfix-staging-ssrf-sms

Conversation

@telivity-otaip

Copy link
Copy Markdown
Collaborator

Independent codex review of the #126/#127/#128 hardening found two real gaps:

  1. Channel SSRF guard off in stagingassertSafeChannelEndpoint only enforced for NODE_ENV=production, so a staging host still allowed tenant-controlled baseUrl to hit 169.254.169.254/localhost/RFC1918. Now enforces for production or staging (consistent with assertSecureConfig).
  2. SMS quota fail-open on bad configSMS_RATE_LIMIT_MAX=garbageNaN → limiter silently disabled. Now an invalid value falls back to the default (stays on); only an explicit valid <= 0 disables.

TDD. Full suite 1020/1020, typecheck clean.

🤖 Generated with Claude Code

…il-open on bad config

Independent codex review of #126-#128 found two gaps:
- assertSafeChannelEndpoint only enforced for NODE_ENV=production, leaving staging
  open to SSRF even though this changeset hardened staging elsewhere. Now enforces
  for production OR staging (matches assertSecureConfig).
- SMS quota parsed env with Number() and disabled on NaN, so SMS_RATE_LIMIT_MAX=garbage
  silently turned the limiter off. Now an invalid value falls back to the default
  (limiter stays on); only an explicit valid value <= 0 disables it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@telivity-otaip telivity-otaip merged commit daeb5fb into main Jun 20, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant