# ActionDispatch::RemoteIp::IpSpoofAttackError

IP spoofing attack?! HTTP_CLIENT_IP="61.186.223.206" HTTP_X_FORWARDED_FOR="143.92.32.30, 172.18.0.3" HTTP_FORWARDED="for=143.92.32.30, for=172.18.0.3"

- **Location:** lib/middleware/malicious_path_blocker.rb:45
- **Occurred at:** 2026-05-10 02:47:40 UTC

## Backtrace

### Compact Trace

```
lib/middleware/malicious_path_blocker.rb:45:in 'Middleware::MaliciousPathBlocker#call'
```

### Full Trace

```
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/remote_ip.rb:153:in 'ActionDispatch::RemoteIp::GetIp#calculate_ip'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/remote_ip.rb:176:in 'ActionDispatch::RemoteIp::GetIp#to_s'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/http/request.rb:318:in 'ActionDispatch::Request#remote_ip'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/railties/lib/rails/rack/logger.rb:60:in 'Rails::Rack::Logger#started_request_message'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/railties/lib/rails/rack/logger.rb:40:in 'block in Rails::Rack::Logger#call_app'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/broadcast_logger.rb:212:in 'block in ActiveSupport::BroadcastLogger#dispatch'
/usr/local/bundle/ruby/4.0.0/gems/logger-1.7.0/lib/logger.rb:685:in 'Logger#add'
/usr/local/bundle/ruby/4.0.0/gems/logger-1.7.0/lib/logger.rb:721:in 'Logger#info'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/broadcast_logger.rb:218:in 'block in ActiveSupport::BroadcastLogger#dispatch'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/broadcast_logger.rb:217:in 'Array#map'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/broadcast_logger.rb:217:in 'ActiveSupport::BroadcastLogger#dispatch'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/broadcast_logger.rb:129:in 'ActiveSupport::BroadcastLogger#info'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/railties/lib/rails/rack/logger.rb:40:in 'Rails::Rack::Logger#call_app'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/railties/lib/rails/rack/logger.rb:29:in 'Rails::Rack::Logger#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/rails/lib/middleware/malicious_path_blocker.rb:45:in 'Middleware::MaliciousPathBlocker#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/railties/lib/rails/rack/silence_request.rb:31:in 'Rails::Rack::SilenceRequest#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/remote_ip.rb:98:in 'ActionDispatch::RemoteIp#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/gems/request_store-1.7.0/lib/request_store/middleware.rb:19:in 'RequestStore::Middleware#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/request_id.rb:34:in 'ActionDispatch::RequestId#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/gems/rack-3.2.6/lib/rack/method_override.rb:28:in 'Rack::MethodOverride#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/gems/rack-3.2.6/lib/rack/runtime.rb:24:in 'Rack::Runtime#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/cache/strategy/local_cache_middleware.rb:30:in 'ActiveSupport::Cache::Strategy::LocalCache::Middleware#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/executor.rb:20:in 'ActionDispatch::Executor#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/static.rb:27:in 'ActionDispatch::Static#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/ssl.rb:92:in 'ActionDispatch::SSL#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/assume_ssl.rb:24:in 'ActionDispatch::AssumeSSL#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/host_authorization.rb:143:in 'ActionDispatch::HostAuthorization#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:67:in 'block in ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'block in ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications/instrumenter.rb:58:in 'ActiveSupport::Notifications::Instrumenter#instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/activesupport/lib/active_support/notifications.rb:210:in 'ActiveSupport::Notifications.instrument'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/actionpack/lib/action_dispatch/middleware/stack.rb:66:in 'ActionDispatch::MiddlewareStack::InstrumentationProxy#call'
/usr/local/bundle/ruby/4.0.0/bundler/gems/rails-a0da6b991a1c/railties/lib/rails/engine.rb:534:in 'Rails::Engine#call'
/usr/local/bundle/ruby/4.0.0/gems/rorvswild-1.11.1/lib/rorvswild/plugin/rails_engine.rb:64:in 'RorVsWild::Plugin::RailsEngine#call'
/usr/local/bundle/ruby/4.0.0/gems/puma-7.2.0/lib/puma/configuration.rb:296:in 'Puma::Configuration::ConfigMiddleware#call'
/usr/local/bundle/ruby/4.0.0/gems/puma-7.2.0/lib/puma/request.rb:103:in 'block in Puma::Request#handle_request'
/usr/local/bundle/ruby/4.0.0/gems/puma-7.2.0/lib/puma/thread_pool.rb:355:in 'Puma::ThreadPool#with_force_shutdown'
/usr/local/bundle/ruby/4.0.0/gems/puma-7.2.0/lib/puma/request.rb:102:in 'Puma::Request#handle_request'
/usr/local/bundle/ruby/4.0.0/gems/puma-7.2.0/lib/puma/server.rb:503:in 'Puma::Server#process_client'
/usr/local/bundle/ruby/4.0.0/gems/puma-7.2.0/lib/puma/server.rb:262:in 'block in Puma::Server#run'
/usr/local/bundle/ruby/4.0.0/gems/puma-7.2.0/lib/puma/thread_pool.rb:182:in 'block in Puma::ThreadPool#spawn_thread'
```

## Context

| Key | Value |
|-----|-------|
| rails | {"version"=>"8.2.0.alpha", "environment"=>"production", "app_revision"=>nil} |

## Environment

| Variable | Value |
|----------|-------|
| os | Linux 6.8.0-106-generic |
| cwd | /rails |
| pid | 24 |
| host | whyruby.info-1a9c2d0bc983 |
| ruby | ruby 4.0.1 (2026-01-13 revision e04267a14b) +YJIT +PRISM [x86_64-linux] |
| rails | 8.2.0.alpha |
| revision | 52a23b1a3a2dc0c2ebc3e12cb7a33d0698be4084 |


[View on RoRvsWild ↗](https://www.rorvswild.com/applications/136539/errors/88083913)