---
id: CVE-2026-113653
aliases:
  - GHSA-xf6w-q65w-4f2w
title: >-
  ApostropheCMS: The general public can access @apostrophecms/user objects via a
  relationship (viewRole is not applied to the general public)
summary: >-
  ApostropheCMS: The general public can access @apostrophecms/user objects via a
  relationship (viewRole is not applied to the general public)
severity: medium
cvss: 6.9
cwe:
  - CWE-863
vendor: apostrophe
product: apostrophe
ecosystem: npm
affected:
  - apostrophe < 4.33.0
patched:
  - apostrophe 4.33.0
published: '2026-10-20'
updated: '2026-10-20'
sourceUpdated: '2026-10-20T18:26:03Z'
source: GHSA
sourceUrl: 'https://github.com/advisories/GHSA-xf6w-q65w-4f2w'
references:
  - url: >-
      https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-xf6w-q65w-4f2w
  - url: >-
      https://github.com/apostrophecms/apostrophe/commit/9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce
  - url: >-
      https://github.com/apostrophecms/apostrophe/commit/f84fd41cbf6c22eb8d0008fc9c25df1f7130b350
  - url: 'https://github.com/apostrophecms/apostrophe/releases/tag/apostrophe@4.33.0'
  - url: 'https://github.com/advisories/GHSA-xf6w-q65w-4f2w'
tags:
  - ghsa
  - npm
  - cve.org
cvssVector: 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N'
ssvc:
  exploitation: none
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-10-20T16:59:52.412597Z'
cvssSource: cna
ingestedAt: '2026-10-20T17:12:53.592Z'
---

## Overview

### Impact
Even though it is correctly applied to guests, contributors, etc., `viewRole` is not applied to the general public. This means that a secured content type like `@apostrophecms/user` can in theory be accessed.

This is greatly mitigated by the fact that there is no automatic public REST API for any content type. One has to expressly allow it. However, it does mean that developers can make the mistake of setting up a relationship between a content type like a blog post, and `@apostrophecms/user`. This could potentially expose some sensitive information if templates were written poorly, e.g. if they JSON-serialized the entire object. Note that password hashes are NOT affected because they reside in a separate collection.

The public demo project and its various flavors must be updated first because it inadvertently relies on the bug.

### Patches
4.33.0

### Workarounds
Never create relationships with `@apostrophecms/user` that are intended for non-admin display. If you need a relationship that expresses authorship, create a separate author piece type to publicly represent that.

## Affected packages

- `apostrophe < 4.33.0`

## Remediation

Upgrade to a patched release:

- `apostrophe 4.33.0`
