Commerce Shipping
2 security fixes in one update. Commerce Shipping fixed 2 separate security bugs at once: 2 access bypass. One update covers all of them. The most serious, SA-CONTRIB-2026-261, is explained here and the full list is at the end of the card.
Anyone could change the status of a delivery or delete it entirely. They could not read any private data.
- Who could do thisAnyone visiting the site. No login needed.
- Does it apply to youAny site using this module where a visitor has a shopping basket with data feed access to manage its shipments.
- Has it been used in attacksNo sign of it.
- How urgentDrupal rates this moderately critical. Include it in your next routine update, within the month.
Tell your developerUpdate Commerce Shipping to 8.x-2.16 or 3.0.6, whichever branch you are on.
For developers: what the fix changed
The fix implements field-level access control for shipments by defining restricted fields in `src/Entity/Shipment.php` and enforcing access checks in `ShipmentAccessControlHandler::checkFieldAccess()`. It also restricts editing the order's shipments field in `commerce_shipping_entity_field_access()` within `commerce_shipping.module` to users with specific order update permissions.
Also in this release The release also fixes test failures against Commerce 3.x while maintaining compatibility with Commerce 2.x.
commerce_shipping.module+17 −0 fixsrc/Entity/Shipment.php+5 −0 fixsrc/ShipmentAccessControlHandler.php+41 −0 fixsrc/ShipmentRouteProvider.php+1 −1 fix
- Moderately critical · Access bypass · SA-CONTRIB-2026-261
- Less critical · Access bypass · SA-CONTRIB-2026-262