v1.11.1-beta
Security release β upgrading is recommended, especially for hosted or multi-tenant setups. Thanks to the researchers who reported these privately.
Security
- Webhook SSRF β URLs were only checked at save time; redirects were followed anywhere and IPv6 transition addresses bypassed the filter. Delivery now re-validates, pins the resolved address, and checks every redirect hop β thanks @tonghuaroot, @de3erve, @JaimeRamirez-coder, @senti-man, @angelystor, @1amplant, @tikket1, @Fewword, @dizconnectz
- Formula injection in exports β buyer-supplied names and answers were written as live spreadsheet formulas; now written as text β thanks @senti-man
- Order completion race β concurrent requests could complete an order twice, duplicating attendees and exhausting capacity β thanks @tonghuaroot
- Sale windows not enforced at checkout β products and price tiers could be bought before going on sale, after closing, or at an expired tier β thanks @angelystor
max_per_orderbypass β the limit was applied per order line, so repeating a product multiplied it β thanks @angelystor- Product ownership not checked β questions, capacity assignments and check-in lists accepted products from other events, and cross-event edits detached the owner's products β thanks @Fewword
- Promo code enumeration β the public lookup endpoint is now throttled β thanks @senti-man
- Cross-event question tampering β editing or deleting a question via another event rewrote its product links and deleted its answers
Fixes
- Order, attendee, product and check-in webhooks now dispatch on the queue instead of inline
Other changes
- Update contact message by @daveearley in #1270
- Update email subject by @daveearley in #1271
Upgrading
No migrations or config changes. Three behaviour changes worth knowing: webhooks to endpoints that redirect to internal addresses now fail; webhook delivery runs on the queue, so a non-sync connection needs a worker; export cells starting with =, +, - or @ render as text.
Full Changelog: v.1.11.0-beta...v1.11.1-beta