Alta

Unauthorized Access to Private Fields in User Registration API

  • Publicada: 03.11.2023
  • Actualizado: 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;

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de npm @strapi/plugin-users-permissions >= 4.0.0, < 4.13.1 4.13.1
Paquete de npm @strapi/strapi >= 4.0.0, < 4.13.1 4.13.1

Referencias

Puntuación CVSS 7.6/10
Vector CVSS
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:L
Debilidad (CWE)
CWE-287
Plataforma
npm
Paquete
@strapi/plugin-users-permissions, @strapi/strapi
Publicada
03.11.2023
Actualizado
11.10.2026 10:22

Fuentes y licencias

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

Historial de vulnerabilidades: @strapi/strapi

Todas las vulnerabilidades publicadas de este paquete (Paquete de npm), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Todas (11) en el archivo
Entradas en total
11
Primera → última
05.2022 05.2026
Sin corrección
2
Explotada en ataques
1

Distribución por gravedad

  • Crítica 1
  • Alta 7
  • Media 3

Divulgaciones por año

  1. 2022: 5
  2. 2023: 3
  3. 2024: 1
  4. 2025: 1
  5. 2026: 1
Gravedad:
  1. Alta · 8.6 CVE-2024-37818 = 4.24.4 sin corrección
  2. Unauthorized Access to Private Fields in User Registration API esta entrada
    Alta · 7.6 CVE-2023-39345 >= 4.0.0, < 4.13.1 4.13.1
  3. Alta · 7.5 Explotada en ataques CVE-2023-22894 >= 3.2.1, < 4.8.0 4.8.0
  4. Alta · 8.8 CVE-2022-31367 >= 4.0.0-next.0, < 4.1.10 4.1.10
  5. Alta · 8.8 CVE-2022-30617 < 4.0.0-beta.15 4.0.0-beta.15
  6. Alta · 7.5 CVE-2021-46440 >= 4.0.0, < 4.1.5 4.1.5

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.