CVE-2026-57579
nicheUnauthenticated Page Tree Data Leak in Alchemy CMS /api/pages/nested
Alchemy CMS, an open source Ruby on Rails content management engine, fails to enforce authorization on the unauthenticated GET /api/pages/nested endpoint implemented by Api::PagesController#nested. Because the endpoint performs no ability check and does not scope the returned page tree to the caller's permissions, anonymous attackers can retrieve metadata for restricted and unpublished pages that the sibling show action would deny. Supplying elements=true goes further: PageTreeSerializer, backed by PageTreePreloader, also returns element and ingredient content from restricted pages, since no ability check is applied to those records either. This is a high-severity (CVSS 7.5) information disclosure affecting sites running affected versions with the API exposed; no public proof of concept or known in-the-wild exploitation has been reported. The flaw is a missing-authorization issue (CWE-862) with network attack vector, no privileges or user interaction required, and high confidentiality impact but no integrity or availability impact.
What to do: Upgrade to the patched releases: 7.4.15, 8.0.15, 8.1.14, or 8.2.6 on the corresponding branch. If patching is delayed, disable the Alchemy API or block unauthenticated requests to /api/pages/nested at the reverse proxy or WAF. Review access logs for unauthenticated calls to /api/pages/nested (especially with elements=true) to determine whether restricted or unpublished page content was exposed, and treat any leaked draft/restricted content accordingly.
| AlchemyCMS Alchemy CMS | >= 7.0.0, < 7.4.15 |
| AlchemyCMS Alchemy CMS | >= 8.0.0, < 8.0.15 |
| AlchemyCMS Alchemy CMS | >= 8.1.0, < 8.1.14 |
| AlchemyCMS Alchemy CMS | >= 8.2.0, < 8.2.6 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Alchemy is an open source content management system engine written in Ruby on Rails. Prior to 7.4.15, 8.0.15, 8.1.14, and 8.2.6, the unauthenticated GET /api/pages/nested endpoint implemented by Api::PagesController#nested in app/controllers/alchemy/api/pages_controller.rb returns an unfiltered page tree because it performs no authorization and does not scope descendants by the caller's ability. Anonymous callers can retrieve restricted and unpublished page metadata that the sibling show action denies. When elements=true is supplied, PageTreeSerializer also returns element and ingredient content from restricted pages because PageTreePreloader and the serializer do not apply an ability check to those records. This issue is fixed in versions 7.4.15, 8.0.15, 8.1.14, and 8.2.6.
- Weakness
- CWE-862
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
In the news0 stories
No ingested article mentions this CVE yet.