Skip to content

List of order ids, number, items total and token value exposed for unauthorized uses via new API

Moderate severity GitHub Reviewed Published Jun 28, 2021 in Sylius/Sylius • Updated Feb 1, 2023

Package

composer sylius/sylius (Composer)

Affected versions

>= 1.9.0, < 1.9.5

Patched versions

1.9.5

Description

Impact

Part of the details (order ID, order number, items total, and token value) of all placed orders were exposed to unauthorized users. If exploited properly, a few additional information like the number of items in the cart and the date of the shipping may be fetched as well. This data seems to not be crucial nor is personal data, however, could be used for sociotechnical attacks or may expose a few details about shop condition to the third parties. The data possible to aggregate are the number of processed orders or their value in the moment of time.

Patches

The problem has been patched at Sylius 1.9.5 and 1.10.0

Workarounds

There are a few ways to fix this without updating the code.

The first possible solution is to hide the problematic endpoints behind the firewall from not logged in users. In order to achieve it one has to add the configuration in config/packages/security.yaml:

    access_control:
        # ... 
        - { path: "%sylius.security.new_api_shop_regex%/orders", role: IS_AUTHENTICATED_ANONYMOUSLY, methods: [POST] }
        - { path: "%sylius.security.new_api_shop_regex%/orders", role: ROLE_USER, methods: [GET] }

This would put only the order list under the firewall and allow only authorized users to access it. Once a user is authorized, it will have access to theirs orders only.

The second possible solution is to decorate the \Sylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\OrdersByLoggedInUserExtension and throw Symfony\Component\Security\Core\Exception\AccessDeniedException if the class is executed for unauthorized user.

References

@pamil pamil published to Sylius/Sylius Jun 28, 2021
Reviewed Jun 28, 2021
Published by the National Vulnerability Database Jun 28, 2021
Published to the GitHub Advisory Database Jun 29, 2021
Last updated Feb 1, 2023

Severity

Moderate
5.3
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Weaknesses

CVE ID

CVE-2021-32720

GHSA ID

GHSA-rpxh-vg2x-526v

Source code

No known source code

Credits

Checking history
See something to contribute? Suggest improvements for this vulnerability.