-
Notifications
You must be signed in to change notification settings - Fork 0
fix(security): trust forwarding IPs only from configured proxies #587
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
seonghobae
wants to merge
121
commits into
develop
Choose a base branch
from
fix/trusted-rate-limit-client-ip
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
121 commits
Select commit
Hold shift + click to select a range
c4a3b2f
test: reject spoofed forwarding IPs in rate limiter
seonghobae 7e6daab
fix(security): anchor rate limiting to trusted network peers
seonghobae 8a867cd
test: cover trusted proxy client-IP boundary
seonghobae 4125cc1
test: keep route core in owned coverage
seonghobae 7f893f9
docs: define trusted reverse-proxy rate-limit contract
seonghobae 172ac1d
docs: trace trusted proxy client-IP boundary
seonghobae 62e5406
test: keep SaaS serve-path assertion across security envelope
seonghobae dc2fe13
test(security): cover cross-client rate-limit poisoning
seonghobae fb98f87
fix(security): prevent duplicate proxy rate-limit buckets
seonghobae 8b144b2
docs(security): trace proxy bucket-poisoning regression
seonghobae b4aa4a3
test(rate-limit): bound client bucket cardinality
seonghobae bf20414
fix(rate-limit): bound client bucket state
seonghobae 2c6da6f
test(rate-limit): reject unsafe limiter config
seonghobae a86f845
fix(rate-limit): fail closed on unsafe config
seonghobae fb64472
docs(rate-limit): document bounded state and config
seonghobae 19da673
test(security): cover IPv4-mapped trusted proxy peers
seonghobae dec4e7a
fix(security): canonicalize IPv4-mapped proxy peers
seonghobae a751633
docs(security): record mapped proxy peer normalization
seonghobae dcbabf8
docs(ops): explain dual-stack proxy address normalization
seonghobae ba7554e
test: reproduce unsigned Stripe webhook plan escalation
seonghobae 042830d
fix: authenticate Stripe webhooks before entitlement handling
seonghobae cc0c6ed
test(billing): keep Stripe webhook behind abuse controls
seonghobae 1f5c2b2
fix(billing): keep Stripe verification inside app controls
seonghobae 4488ab9
test(ci): align public-route contract with Stripe repair
seonghobae dce2424
fix(billing): retire unsigned Stripe plan-upgrade handler
seonghobae c5e85d0
test(security): reject equivalent IPv6 proxy spelling mismatch
seonghobae f69ad0d
fix(security): canonicalize equivalent IPv6 proxy addresses
seonghobae 5e30072
test(server): prove toast route is unique
seonghobae 4ae65a6
test(a11y): exercise shipped toast asset route
seonghobae 87d34bd
test(security): bind invites to intended identity
seonghobae eaab3f8
fix(security): bind invite redemption to email
seonghobae 5dc72e7
test(ci): match secured route composition
seonghobae a1ad3bc
test(security): fail closed when OIDC is unconfigured
seonghobae 7b19b86
fix(security): require explicit development for mock OIDC
seonghobae 2d39860
ci: run owned-production coverage in server gate
seonghobae 77406a9
test(security): require invite safety in protected route graph
seonghobae d611894
test(security): cover shared OIDC fail-closed boundary
seonghobae 7c1f08c
fix(security): secure shared application boundary
seonghobae 394e3cc
fix(security): align OIDC regression and trust docs
seonghobae 7ef64d2
test(security): expose invite core bypass regression
seonghobae 36c1037
test(security): bind invite guard to live sessions
seonghobae bc50cc9
fix(security): reject revoked sessions before invite binding
seonghobae 40eb4d1
test(security): keep guard rejections behind abuse controls
seonghobae ab7c7fe
test(security): register guard abuse-control regression
seonghobae 72f6acc
fix(security): account rejected guards in abuse controls
seonghobae de0a053
test(stripe): preserve literal signature timestamp
seonghobae 131d79e
fix(stripe): verify literal signed timestamp
seonghobae cf67f2a
test(security): preserve guard rejection method evidence
seonghobae 177996e
fix(observability): retain original guard request method
seonghobae 04363c0
fix(observability): carry original guard method safely
seonghobae 25b95ed
test(security): require core OIDC fail-closed
seonghobae 5807225
test(security): require core invite fail-closed behavior
seonghobae 03cbe9f
fix(security): harden internal invite and OIDC boundaries
seonghobae c7baef2
test(rate-limit): require metrics for blocked requests
seonghobae d3f8d4d
fix(rate-limit): retain blocked request observability
seonghobae e8ef4fd
merge security hotfix into trusted rate-limit lane
seonghobae 3b3d4a3
docs(deploy): align fail-closed identity and AI configuration
seonghobae 7d09220
test(security): expose shared-boundary limiter gaps
seonghobae 8944945
test(security): run shared-boundary limiter regression
seonghobae 2f3f8e8
refactor(security): share trusted rate-limit policy
seonghobae ad19c9d
fix(security): rate-limit the shared boundary before guards
seonghobae 264bcbf
test(rate-limit): cover blocked Prometheus metrics
seonghobae d6463ec
test(rate-limit): register Prometheus observability regression
seonghobae d0f92c0
test(rate-limit): remove overflow timing dependency
seonghobae 1fcb863
test(rate-limit): require one shared limiter implementation
seonghobae 7f963b4
fix(rate-limit): share authoritative limiter implementation
seonghobae 062fec8
test(coverage): require shared limiter instrumentation
seonghobae 865f540
fix(coverage): instrument shared rate limiter
seonghobae f378e1d
test(ci): reject duplicate API execution
seonghobae 0811a4f
ci: avoid duplicate API suite execution
seonghobae 26ca25c
test(security): reproduce forged OIDC identity token acceptance
seonghobae a26ff22
fix(security): verify production OIDC identities before session minting
seonghobae c673acc
test(security): prove signed OIDC identity validation contract
seonghobae 1ada93f
test(ci): require exact PR head checkout
seonghobae f9e87d0
ci: bind server tests to exact PR head
seonghobae 1533e07
test(ci): require exact dependency review revisions
seonghobae 204cbda
ci: bind dependency review to live exact revisions
seonghobae 4c8b682
test(ci): preserve slashed dependency-review bases
seonghobae fe01284
fix(ci): support slashed live base refs
seonghobae 5a7393e
test(security): bound abandoned OIDC authorization state
seonghobae 55951ea
fix(security): bound transient auth state storage
seonghobae 789d968
fix(security): cap production OIDC state
seonghobae fad52de
test(ci): restore coverage producer guards
seonghobae 1f93371
fix: share trusted rate limiter with core routes
seonghobae 886caf5
test: reproduce rate-limit import-order bypass
seonghobae 75b7caf
fix: preserve shared limiter across import order
seonghobae dcf37e8
fix: redact bearer tokens from rate-limit logs
seonghobae 74d41d1
test: fail closed on direct core production OIDC
seonghobae c2a3811
test: run core production OIDC fail-closed regression
seonghobae 8e79805
fix: fail closed direct core production OIDC
seonghobae c53c87b
test: preserve moved core security contracts
seonghobae 58695e4
fix(auth): preserve guard rejection observability
seonghobae 4bc5fc3
test(auth): reuse mixed-case OIDC accounts
seonghobae efd9280
fix(auth): reuse case-variant OIDC accounts
seonghobae c542615
docs: clarify orchestrator token mapping
seonghobae 50c74dd
test(ci): require dependency review merge-base scope
seonghobae 67fd3fe
test(ci): run dependency merge-base regression
seonghobae 199b811
fix(ci): scope dependency review to PR merge base
seonghobae e98cae8
test(rate-limit): preserve metrics response on fold failure
seonghobae f6bd5ea
test(rate-limit): run observability failure regression
seonghobae d3ea2b2
fix(rate-limit): isolate metrics folding failures
seonghobae 0c38ee4
test(auth): define canonical email identity contract
seonghobae f4ceb08
test(auth): run canonical email identity contract
seonghobae 8c1f666
fix(auth): migrate canonical email identities
seonghobae 4a47e15
fix(auth): canonicalize password identities at shared boundary
seonghobae ede4d13
test(auth): compare legacy rows by value
seonghobae b251c6c
test(security): reproduce current identity and OIDC review findings
seonghobae 81797d3
fix: close security boundary regressions
seonghobae a154cf1
fix: isolate shared signup metrics
seonghobae 7430bb2
fix: count mock SSO signups
seonghobae f074b41
test: reject private OIDC metadata endpoints
seonghobae b5af769
feat: add pinned public HTTPS transport
seonghobae d46ac47
test: cover pinned public HTTPS transport
seonghobae 474595a
fix: pin OIDC outbound HTTPS destinations
seonghobae f3c925e
test: inject bounded OIDC HTTPS seam
seonghobae b8283b5
test: inject OIDC HTTPS transport in production regression
seonghobae 660d272
test: gate public HTTPS transport coverage
seonghobae d7575ce
test(runtime): reject unsupported Node 23.4
seonghobae 70928aa
fix(runtime): exclude Node 23.4 from SQLite support
seonghobae 08d328b
test(security): prove guarded invite rate-limit ordering
seonghobae f36eb24
fix(auth): unify Unicode identity and OIDC form boundaries
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.