CVE-2026-107851 Contao: Improper access control in the table access voter
A low-privileged backend user can bypass access controls to read, create, update, or delete records in unauthorized tables due to flawed caching logic.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-107851?
CVE-2026-107851 is a medium-severity missing authorization vulnerability in contao, published on 9 Oct 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Contao is an Open Source CMS. From version 5.7.0 until 5.7.12, TableAccessVoter::hasAccessToModule() in core-bundle/src/Security/Voter/DataContainer/TableAccessVoter.php caches authorization decisions using only $tokenHash, a hash of the user's security token, and omits the table returned by getDataSource(). If one request first checks a table allowed to the user and then a different denied table, the voter can reuse the allowed result, while DefaultDataContainerVoter can convert an incorrect abstention into a grant. A low-privileged backend user can consequently read, create, update, or delete records in tables outside assigned module permissions, including tables containing member or newsletter-subscriber data. This issue is fixed in version 5.7.12.
Which versions are affected by CVE-2026-107851?
2 open source packages ship an affected version, including contao/core-bundle.
| Package | Affected | Fixed in |
|---|---|---|
contao/core-bundle Packagist | From 5.7.0 | 5.7.12 |
contao/core-bundle Packagist | From 5.7.0 | 5.7.12 |
How do I fix CVE-2026-107851?
Upgrade contao/core-bundle to 5.7.12 or later.
Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.
Is CVE-2026-107851 being exploited?
There is no known exploitation of CVE-2026-107851 in the wild and no public exploit code.
Sources
Also known as GHSA-5974-gfqc-wrcm.