GHSA-q6wp-fr43-gm9v: Medium severity composer/contao/core-bundle vulnerability

Published Oct 9, 2026
·
Updated

core-bundle/config/services.yaml registers the preview access voter with the class Contao\CoreBundle\Security\Voter\DataContainer\PreviewAccessVoter, but the class shipped on disk is named PreviewVoter. Symfony resolves the class with getReflectionClass($class, false), gets null, silently skips the interface based autoconfiguration that would have tagged it as a voter, and the now untagged private service is removed when the container is compiled. The application boots without a warning, and the ownership rule in PreviewVoter::hasAccess() is never executed. tlpreviewlink has no compensating SQL filter on createdBy, so any non administrator back end user whose group holds the previewlink module reads every preview link on the installation and lifts the already signed share URLs straight out of the list. Following one grants front end preview of the target page, with showUnpublished and with no page permission check, to anyone at all.

Impact

A non administrator back end user reads every preview link on the installation, including links created by administrators, and lifts the already signed share URLs out of the list. Following one grants front end preview of the target page with showUnpublished and with no page permission check at all, so unpublished or embargoed content becomes readable by a user who has no rights on those pages, and by anyone that user forwards the URL to.

Honesty caveat, stated because it bounds the severity. UpdateAction on a record owned by someone else was denied in our lab by DcaPermissionVoter, so we do not claim that a foreign preview link can be edited or deleted.

Affected Software

1 affected componentFixes available
composer/contao/core-bundle>=5.7.1<5.7.12
5.7.12

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade composer/contao/core-bundle to a version that resolves this vulnerability.

    Fixed in 5.7.12
  2. Configuration

    Register the shipped PreviewVoter class instead of Contao\CoreBundle\Security\Voter\DataContainer\PreviewAccessVoter so Symfony can resolve and tag the voter.

    core-bundle/config/services.yaml Preview access voter class = Contao\CoreBundle\Security\Voter\DataContainer\PreviewVoter

Event History

Oct 9, 2026
Advisory Published
via GitHub·08:53 PM
Data Sourced
via GitHub·08:53 PM
DescriptionSeverityWeaknessAffected Software

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203