Lookup for vulnerable packages by Package URL.

Purlpkg:npm/%40strapi/strapi@4.13.1
Typenpm
Namespace@strapi
Namestrapi
Version4.13.1
Qualifiers
Subpath
Is_vulnerablefalse
Next_non_vulnerable_version5.24.1
Latest_non_vulnerable_version5.24.1
Affected_by_vulnerabilities
Fixing_vulnerabilities
0
url VCID-jpqv-dukr-fyhu
vulnerability_id VCID-jpqv-dukr-fyhu
summary
Unauthorized Access to Private Fields in User Registration API
### 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. 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 does 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 does 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;
```
references
0
reference_url https://strapi.io/blog/security-disclosure-of-vulnerabilities-sept-2023
reference_id
reference_type
scores
url https://strapi.io/blog/security-disclosure-of-vulnerabilities-sept-2023
1
reference_url https://nvd.nist.gov/vuln/detail/CVE-2023-39345
reference_id CVE-2023-39345
reference_type
scores
url https://nvd.nist.gov/vuln/detail/CVE-2023-39345
2
reference_url https://github.com/advisories/GHSA-gc7p-j5xm-xxh2
reference_id GHSA-gc7p-j5xm-xxh2
reference_type
scores
url https://github.com/advisories/GHSA-gc7p-j5xm-xxh2
3
reference_url https://github.com/strapi/strapi/security/advisories/GHSA-gc7p-j5xm-xxh2
reference_id GHSA-gc7p-j5xm-xxh2
reference_type
scores
url https://github.com/strapi/strapi/security/advisories/GHSA-gc7p-j5xm-xxh2
fixed_packages
0
url pkg:npm/%40strapi/strapi@4.13.1
purl pkg:npm/%40strapi/strapi@4.13.1
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/%2540strapi/strapi@4.13.1
aliases CVE-2023-39345, GHSA-gc7p-j5xm-xxh2
risk_score null
exploitability null
weighted_severity null
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-jpqv-dukr-fyhu
Risk_scorenull
Resource_urlhttp://public2.vulnerablecode.io/packages/pkg:npm/%2540strapi/strapi@4.13.1