Wysoka

Unauthorized Access to Private Fields in User Registration API

  • Ujawniono: 03.11.2023
  • Aktualizacja: 11.10.2026 10:22

System Details

Name Value
OS Windows 11
Version 4.11.1 (node v16.14.2)
Database mysql

Description

I marked some fields as private fields in user content-type, and tried to register as a new user via api, at the same time I added content to fill the private fields and sent a post request, and as you can see from the images below, I can write to the private fields.

register

user

private_field

table

To prevent this, I went to the extension area and tried to extend the register method, for this I wanted to do it using the sanitizeInput function that I know in the source codes of the strap. But the sanitizeInput function did not filter out private fields.

js
  const { auth } = ctx.state;
  const data = ctx.request.body;
  const userSchema = strapi.getModel("plugin::users-permissions.user");

  sanitize.contentAPI.input(data, userSchema, { auth });

here's the solution I've temporarily kept to myself, code snippet

js
  const body = ctx.request.body;

  const { attributes } = strapi.getModel("plugin::users-permissions.user");

  const sanitizedData = _.omitBy(body, (data, key) => {
    const attribute = attributes[key];

    if (_.isNil(attribute)) {
      return false;
    }

    //? If you want, you can throw an error for fields that we did not expect.

    // if (_.isNil(attribute))
    //   throw new ApplicationError(`Unexpected value ${key}`);

    // if private value is true, we do not want to send it to the database.
    return attribute.private;
  });

  return sanitizedData;

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Paczka npm @strapi/plugin-users-permissions >= 4.0.0, < 4.13.1 4.13.1
Paczka npm @strapi/strapi >= 4.0.0, < 4.13.1 4.13.1

Odnośniki

Ocena CVSS 7.6/10
Wektor CVSS
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Słabość (CWE)
CWE-287
Platforma
npm
Paczka
@strapi/plugin-users-permissions, @strapi/strapi
Ujawniono
03.11.2023
Aktualizacja
11.10.2026 10:22

Źródła i licencje

OSV / GitHub Advisory Database - GHSA-gc7p-j5xm-xxh2 - CC BY 4.0

Historia podatności: @strapi/plugin-users-permissions

Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkich wpisów
8
Pierwsza → ostatnia
04.2023 05.2026
Bez poprawki
0
Wykorzystywana w atakach
0

Rozkład istotności

  • Krytyczna 1
  • Wysoka 4
  • Średnia 2
  • Niska 1

Ujawnienia w latach

  1. 2023: 5
  2. 2024: 1
  3. 2025: 0
  4. 2026: 2
  1. Unauthorized Access to Private Fields in User Registration API ten wpis
    Wysoka · 7.6 CVE-2023-39345 >= 4.0.0, < 4.13.1 4.13.1
  2. Wysoka · 7.3 CVE-2023-38507 < 4.12.1 4.12.1
  3. Średnia CVE-2023-22893 >= 3.2.1, < 4.6.0 4.6.0
  4. Wysoka · 8.2 ghsa-xv3q-jrmm-4fxv >= 3.2.1, < 4.6.0 4.6.0

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.