You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
title: Unauthenticated Spree Commerce users can view completed
@@ -12,14 +13,16 @@ description: |
12
13
guest orders by order number alone, without requiring the
13
14
associated order token.
14
15
15
-
Order lookup without enforcing token requirement in [`OrdersController#show`](https://github.com/spree/spree/blob/1341623f2ae92685cdbe232885bf5808fc8f9ca8/storefront/app/controllers/spree/orders_controller.rb#L14):
16
+
Order lookup without enforcing token requirement in
Authorization bypass for guest orders in [`authorize_access`](https://github.com/spree/spree/blob/1341623f2ae92685cdbe232885bf5808fc8f9ca8/storefront/app/controllers/spree/orders_controller.rb#L51C1-L55C8):
25
+
23
26
```ruby
24
27
def authorize_access
25
28
return true if @order.user_id.nil?
@@ -30,13 +33,13 @@ description: |
30
33
31
34
If the attacker is in possession of a leaked Order ID, they might
32
35
look it up directly via this API.
33
-
Alternatively, brute forcing all or parts of the possible
34
-
Order IDs might be feasible for an attacker. (The Order IDs
35
-
themselves are [securely generated](https://github.com/spree/spree/blob/a878eb4a782ce0445d218ea86fb12075b0e3d7cc/core/lib/spree/core/number_generator.rb#L45),
36
-
but with relatively low entropy: by default an order ID has a
37
-
length of 9 and a base of 10, that would require an attacker to
38
-
perform 1 billion requests to gather all guest orders. (At an
39
-
assumed constant rate of 100 requests per second it would take 115 days.)
36
+
Alternatively, brute forcing all or parts of the possible Order IDs
37
+
might be feasible for an attacker. (The Order IDs themselves are
0 commit comments