{"id":"CVE-2023-35167","aliases":["EUVD-2023-1733","GHSA-7hh3-3x64-v2g9"],"status":"published","title":"When setting EntityOptions.apiPrefilter to a function, the filter is not applied to API requests for a resource by Id","description":"Remult is a CRUD framework for full-stack TypeScript. If you used the apiPrefilter option of the `@Entity` decorator, by setting it to a function that returns a filter that prevents unauthorized access to data, an attacker who knows the `id` of an entity instance is not authorized to access, can gain read, update and delete access to it. The issue is fixed in version 0.20.6. As a workaround, set the `apiPrefilter` option to a filter object instead of a function.","severity":{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00546,"percentile":0.46098,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-284"],"published":"2023-06-20T18:50:15Z","modified":"2026-10-28T02:31:11Z","fixes":[{"ecosystem":"npm","package":"remult","fixed_in":["0.20.6"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"remult","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.20.6"}]}]},{"source":"osv","ecosystem":"npm","package":"remult","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.20.6"}]}]}],"products":[{"vendor":"remult","product":"remult"}],"references":[{"url":"https://github.com/remult/remult/security/advisories/GHSA-7hh3-3x64-v2g9","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/remult/remult/commit/6892ae97134126d8710ef7302bb2fc37730994c5","tags":["x_refsource_MISC","x_transferred","Patch","fix","web"]},{"url":"https://github.com/remult/remult/releases/tag/v0.20.6","tags":["x_refsource_MISC","x_transferred","Release Notes","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-35167","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-7hh3-3x64-v2g9"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/35xxx/CVE-2023-35167.json","tags":["advisory"]},{"url":"https://github.com/remult/remult","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2023-35167","title":"When setting EntityOptions.apiPrefilter to a function, the filter is not applied to API requests for a resource by Id","description":"Remult is a CRUD framework for full-stack TypeScript. If you used the apiPrefilter option of the `@Entity` decorator, by setting it to a function that returns a filter that prevents unauthorized access to data, an attacker who knows the `id` of an entity instance is not authorized to access, can gain read, update and delete access to it. The issue is fixed in version 0.20.6. As a workaround, set the `apiPrefilter` option to a filter object instead of a function.","status":"published","published":"2023-06-23T19:03:54.753Z","modified":"2024-11-07T19:04:32.133Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium","assessor":"cna"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T14:35:33.462059Z"}],"euvd":[{"id":"EUVD-2023-1733","description":"Remult is a CRUD framework for full-stack TypeScript. If you used the apiPrefilter option of the `@Entity` decorator, by setting it to a function that returns a filter that prevents unauthorized access to data, an attacker who knows the `id` of an entity instance is not authorized to access, can gain read, update and delete access to it. The issue is fixed in version 0.20.6. As a workaround, set the `apiPrefilter` option to a filter object instead of a function.","status":"published","published":"2023-06-23T19:03:54Z","modified":"2024-11-07T19:04:32Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium"}],"updated_at":"2026-11-03T00:05:08.272544Z"}],"ghsa":[{"id":"GHSA-7hh3-3x64-v2g9","title":"When setting EntityOptions.apiPrefilter to a function, the filter is not applied to API requests for a resource by Id","description":"### Impact\nIf you used the [apiPrefilter](https://remult.dev/docs/ref_entity.html#apiprefilter) option of the `@Entity` decorator, by setting it to a function that returns a filter that prevents unauthorized access to data, an attacker who knows the `id` of an entity instance she is not authorized to access, can gain read, update and delete access to it.\n\n### Patches\nThe issue is fixed in version 0.20.6\n\n### Workarounds\nSet the `apiPrefilter` option to a filter object instead of a function.\n\n### References\nIf you're using a minor version \u003c 0.20 and require a patch, please create an issue.","status":"published","published":"2023-06-20T18:50:15Z","modified":"2023-11-09T05:02:04Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T14:37:17.64478Z"}],"nvd":[{"id":"CVE-2023-35167","description":"Remult is a CRUD framework for full-stack TypeScript. If you used the apiPrefilter option of the `@Entity` decorator, by setting it to a function that returns a filter that prevents unauthorized access to data, an attacker who knows the `id` of an entity instance is not authorized to access, can gain read, update and delete access to it. The issue is fixed in version 0.20.6. As a workaround, set the `apiPrefilter` option to a filter object instead of a function.","status":"published","published":"2023-06-23T20:15:09.227Z","modified":"2026-06-17T06:04:32.34Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium","assessor":"secondary"},{"version":"3.1","score":6.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium","assessor":"primary"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T14:08:12.414559Z"}],"osv":[{"id":"CVE-2023-35167","title":"When setting EntityOptions.apiPrefilter to a function, the filter is not applied to API requests for a resource by Id","description":"Remult is a CRUD framework for full-stack TypeScript. If you used the apiPrefilter option of the `@Entity` decorator, by setting it to a function that returns a filter that prevents unauthorized access to data, an attacker who knows the `id` of an entity instance is not authorized to access, can gain read, update and delete access to it. The issue is fixed in version 0.20.6. As a workaround, set the `apiPrefilter` option to a filter object instead of a function.","status":"published","published":"2023-06-23T19:03:54.753Z","modified":"2026-10-28T02:31:11.752047511Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T15:44:32.510144Z"},{"id":"GHSA-7hh3-3x64-v2g9","title":"When setting EntityOptions.apiPrefilter to a function, the filter is not applied to API requests for a resource by Id","description":"### Impact\nIf you used the [apiPrefilter](https://remult.dev/docs/ref_entity.html#apiprefilter) option of the `@Entity` decorator, by setting it to a function that returns a filter that prevents unauthorized access to data, an attacker who knows the `id` of an entity instance she is not authorized to access, can gain read, update and delete access to it.\n\n### Patches\nThe issue is fixed in version 0.20.6\n\n### Workarounds\nSet the `apiPrefilter` option to a filter object instead of a function.\n\n### References\nIf you're using a minor version \u003c 0.20 and require a patch, please create an issue.","status":"published","published":"2023-06-20T18:50:15Z","modified":"2026-09-10T03:49:53.848594269Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L","level":"medium"}],"cwes":["CWE-284"],"updated_at":"2026-11-02T15:46:41.002603Z"}]}}
