jsii
[](https://cdk.dev) [: downlevel-dts is a legitimate TS declaration tool; its use in jsii's build pipeline is expected and stable. | ai | |
| provenance | no-provenance | AI (provenance): Established AWS package with strong publisher track record; lack of Sigstore provenance is a process gap, not a security risk for this well-known package. | ai | |
| dependencies | unvetted-dep:sort-json | AI (dependencies): sort-json is a small, well-known utility package with no security concerns; appropriate dependency for a compiler tool. | ai | |
| phantom-deps | phantom-dep:semver-intersect | AI (phantom-deps): semver-intersect is a declared runtime dependency used internally; phantom-dep finding is a false positive for this package. | ai | |
| dependencies | unvetted-dep:semver-intersect | AI (dependencies): semver-intersect is a legitimate semver utility; appropriate for jsii's version constraint handling. | ai | |
| dependencies | unvetted-dep:@jsii/spec | AI (dependencies): @jsii/spec is a first-party AWS/jsii package, a stable sibling dependency of jsii itself. Safe for all versions of this package. | ai | |
| typosquat | typosquat.levenshtein:joi | AI (typosquat): jsii is a canonical AWS CDK multi-language compiler, not a typosquat of joi. Name similarity is purely coincidental; package predates the concern. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require is in a test/verification script reading package.json files from a directory — benign test infrastructure, not production arbitrary module loading. | ai |
Versions (showing 100 of 343)
| Version | Deps | Published |
|---|---|---|
| 6.0.6 | 12 / 32 | |
| 6.0.5 | 12 / 32 | |
| 6.0.4 | 12 / 32 | |
| 6.0.3 | 12 / 32 | |
| 6.0.2 | 12 / 32 | |
| 6.0.1 | 12 / 32 | |
| 6.0.0 | 12 / 32 | |
| 5.9.48 | 12 / 33 | |
| 5.9.44 | 12 / 33 | |
| 5.9.43 | 12 / 33 | |
| 5.9.42 | 12 / 33 | |
| 5.9.41 | 12 / 33 | |
| 5.9.40 | 12 / 33 | |
| 5.9.39 | 12 / 33 | |
| 5.9.37 | 12 / 33 | |
| 5.9.36 | 12 / 33 | |
| 5.9.35 | 12 / 33 | |
| 5.9.34 | 12 / 33 | |
| 5.9.33 | 12 / 33 | |
| 5.9.32 | 12 / 33 | |
| 5.9.31 | 12 / 33 | |
| 5.9.30 | 12 / 33 | |
| 5.9.29 | 12 / 33 | |
| 5.9.28 | 12 / 33 | |
| 5.9.27 | 12 / 33 | |
| 5.9.26 | 12 / 33 | |
| 5.9.25 | 12 / 33 | |
| 5.9.24 | 12 / 33 | |
| 5.9.23 | 12 / 33 | |
| 5.9.22 | 12 / 33 | |
| 5.9.21 | 12 / 33 | |
| 5.9.20 | 12 / 33 | |
| 5.9.19 | 12 / 33 | |
| 5.9.18 | 12 / 33 | |
| 5.9.14 | 12 / 33 | |
| 5.9.13 | 12 / 33 | |
| 5.9.12 | 12 / 33 | |
| 5.9.11 | 12 / 33 | |
| 5.9.10 | 12 / 33 | |
| 5.9.9 | 12 / 33 | |
| 5.9.8 | 12 / 33 | |
| 5.9.7 | 12 / 33 | |
| 5.9.6 | 12 / 33 | |
| 5.9.5 | 12 / 33 | |
| 5.9.4 | 12 / 33 | |
| 5.9.3 | 12 / 33 | |
| 5.9.2 | 12 / 33 | |
| 5.9.1 | 12 / 33 | |
| 5.9.0 | 12 / 33 | |
| 5.8.27 | 12 / 33 | |
| 5.8.26 | 12 / 33 | |
| 5.8.25 | 12 / 33 | |
| 5.8.22 | 12 / 33 | |
| 5.8.21 | 12 / 33 | |
| 5.8.20 | 12 / 33 | |
| 5.8.19 | 12 / 33 | |
| 5.8.18 | 12 / 33 | |
| 5.8.17 | 12 / 33 | |
| 5.8.16 | 12 / 33 | |
| 5.8.15 | 12 / 33 | |
| 5.8.14 | 12 / 33 | |
| 5.8.13 | 12 / 33 | |
| 5.8.12 | 12 / 33 | |
| 5.8.11 | 12 / 33 | |
| 5.8.10 | 12 / 33 | |
| 5.8.9 | 12 / 33 | |
| 5.8.8 | 12 / 33 | |
| 5.8.7 | 12 / 33 | |
| 5.8.6 | 12 / 33 | |
| 5.8.5 | 12 / 33 | |
| 5.8.4 | 12 / 33 | |
| 5.8.3 | 12 / 33 | |
| 5.8.2 | 12 / 33 | |
| 5.8.1 | 12 / 33 | |
| 5.8.0 | 12 / 33 | |
| 5.7.22 | 12 / 33 | |
| 5.7.21 | 12 / 33 | |
| 5.7.20 | 12 / 33 | |
| 5.7.19 | 12 / 33 | |
| 5.7.18 | 12 / 33 | |
| 5.7.17 | 12 / 33 | |
| 5.7.16 | 12 / 33 | |
| 5.7.15 | 12 / 33 | |
| 5.7.14 | 12 / 33 | |
| 5.7.13 | 12 / 33 | |
| 5.7.12 | 12 / 33 | |
| 5.7.11 | 12 / 33 | |
| 5.7.10 | 12 / 33 | |
| 5.7.9 | 12 / 33 | |
| 5.7.8 | 12 / 33 | |
| 5.7.7 | 12 / 33 | |
| 5.7.6 | 12 / 33 | |
| 5.7.5 | 12 / 33 | |
| 5.7.4 | 12 / 33 | |
| 5.7.3 | 12 / 33 | |
| 5.7.2 | 12 / 33 | |
| 5.7.1 | 12 / 33 | |
| 5.7.0 | 12 / 33 | |
| 5.6.23 | 12 / 33 | |
| 5.6.22 | 12 / 33 |
v6.0.6
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v6.0.5
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v5.9.48
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v5.8.6
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.8.5
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.8.4
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.8.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.8.2
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.8.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.8.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.13
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.12
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.11
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.10
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.9
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.8
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.7
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.6
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.5
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.4
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.2
2 findingsCVSS 3.7 (LOW) — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N ## Summary `jsii` is a TypeScript to JavaScript compiler that also extracts an interface definition manifest to generate RPC stubs in various programming languages. jsii is typically used as a command-line tool, but it can also be loaded as a library. When loaded as a library into a larger application, prototype pollution may happen if untrusted user input is passed to the library. When used as a command line-tool, this pollution cannot occur. ## Impact You may be impacted if you have written an application that loads jsii as a library, and passes untrusted user input into the `jsii.configureCategories()` function. In that case, a user can craft input in such a way that, following the invocation, a field named "category" with a user-controlled value is added to the JavaScript Object prototype. This will cause every object in the program (both new and existing) to have a field named "category", even if it shouldn't. **This will not affect jsii itself, but it might affect the application you have loaded jsii into.** > The function `jsii.configureCategories()` is used to configure the severity (error, warning, etc.) of various jsii diagnostics. **Impacted versions: <=5.7.2, <=5.6.3, <=5.5.14, <=5.4.45** **Example:** ```js const jsii = require('jsii'); // prints 'undefined' console.log(JSON.stringify({}.category)) // calling 'configureCategories' with user input jsii.configureCategories(JSON.parse('{"__proto__": "user-input"}')) // from this point onwards, every single object literal in the program // will contain the 'category' key, with user controlled value console.log(JSON.stringify({}.category)) // prints 'user-input' // this can affect the execution of the main program in case it also makes // use of an object key called 'category'. for example, if the main programs // happens to have code like this: const x = {} // some object in the main program (not necessarily empty) if (x.category) { // this block will always be executed, effectively // changing the behavior of the main program. console.log('Do something') } else { console.log('Do something else') } ``` For more information about javascript prototype pollution, see [1]. ## Patches A patch is included in versions [5.7.3](https://github.com/aws/jsii-compiler/releases/tag/v5.7.3), [5.6.4](https://github.com/aws/jsii-compiler/releases/tag/v5.6.4), [5.5.15](https://github.com/aws/jsii-compiler/releases/tag/v5.5.15), [5.4.46](https://github.com/aws/jsii-compiler/releases/tag/v5.4.46) ## Workarounds Sanitize user input to configureCategories() by stripping the __proto__ property if detected. ## References If you have any questions or comments about this advisory, we ask that you contact AWS/Amazon Security via our issue reporting page [2] or directly via email to [[email protected]](mailto:[email protected]). Please do not create a public GitHub issue. [1] https://learn.snyk.io/lesson/prototype-pollution/ [2] [https://aws.amazon.com/security/issue-reporting](https://aws.amazon.com/security/vulnerability-reporting) ## Credits We would like to thank _Tariq Hawis_ for collaborating on this issue through the coordinated vulnerability disclosure process.
[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.1
2 findingsCVSS 3.7 (LOW) — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N ## Summary `jsii` is a TypeScript to JavaScript compiler that also extracts an interface definition manifest to generate RPC stubs in various programming languages. jsii is typically used as a command-line tool, but it can also be loaded as a library. When loaded as a library into a larger application, prototype pollution may happen if untrusted user input is passed to the library. When used as a command line-tool, this pollution cannot occur. ## Impact You may be impacted if you have written an application that loads jsii as a library, and passes untrusted user input into the `jsii.configureCategories()` function. In that case, a user can craft input in such a way that, following the invocation, a field named "category" with a user-controlled value is added to the JavaScript Object prototype. This will cause every object in the program (both new and existing) to have a field named "category", even if it shouldn't. **This will not affect jsii itself, but it might affect the application you have loaded jsii into.** > The function `jsii.configureCategories()` is used to configure the severity (error, warning, etc.) of various jsii diagnostics. **Impacted versions: <=5.7.2, <=5.6.3, <=5.5.14, <=5.4.45** **Example:** ```js const jsii = require('jsii'); // prints 'undefined' console.log(JSON.stringify({}.category)) // calling 'configureCategories' with user input jsii.configureCategories(JSON.parse('{"__proto__": "user-input"}')) // from this point onwards, every single object literal in the program // will contain the 'category' key, with user controlled value console.log(JSON.stringify({}.category)) // prints 'user-input' // this can affect the execution of the main program in case it also makes // use of an object key called 'category'. for example, if the main programs // happens to have code like this: const x = {} // some object in the main program (not necessarily empty) if (x.category) { // this block will always be executed, effectively // changing the behavior of the main program. console.log('Do something') } else { console.log('Do something else') } ``` For more information about javascript prototype pollution, see [1]. ## Patches A patch is included in versions [5.7.3](https://github.com/aws/jsii-compiler/releases/tag/v5.7.3), [5.6.4](https://github.com/aws/jsii-compiler/releases/tag/v5.6.4), [5.5.15](https://github.com/aws/jsii-compiler/releases/tag/v5.5.15), [5.4.46](https://github.com/aws/jsii-compiler/releases/tag/v5.4.46) ## Workarounds Sanitize user input to configureCategories() by stripping the __proto__ property if detected. ## References If you have any questions or comments about this advisory, we ask that you contact AWS/Amazon Security via our issue reporting page [2] or directly via email to [[email protected]](mailto:[email protected]). Please do not create a public GitHub issue. [1] https://learn.snyk.io/lesson/prototype-pollution/ [2] [https://aws.amazon.com/security/issue-reporting](https://aws.amazon.com/security/vulnerability-reporting) ## Credits We would like to thank _Tariq Hawis_ for collaborating on this issue through the coordinated vulnerability disclosure process.
[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v5.7.0
2 findingsCVSS 3.7 (LOW) — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N ## Summary `jsii` is a TypeScript to JavaScript compiler that also extracts an interface definition manifest to generate RPC stubs in various programming languages. jsii is typically used as a command-line tool, but it can also be loaded as a library. When loaded as a library into a larger application, prototype pollution may happen if untrusted user input is passed to the library. When used as a command line-tool, this pollution cannot occur. ## Impact You may be impacted if you have written an application that loads jsii as a library, and passes untrusted user input into the `jsii.configureCategories()` function. In that case, a user can craft input in such a way that, following the invocation, a field named "category" with a user-controlled value is added to the JavaScript Object prototype. This will cause every object in the program (both new and existing) to have a field named "category", even if it shouldn't. **This will not affect jsii itself, but it might affect the application you have loaded jsii into.** > The function `jsii.configureCategories()` is used to configure the severity (error, warning, etc.) of various jsii diagnostics. **Impacted versions: <=5.7.2, <=5.6.3, <=5.5.14, <=5.4.45** **Example:** ```js const jsii = require('jsii'); // prints 'undefined' console.log(JSON.stringify({}.category)) // calling 'configureCategories' with user input jsii.configureCategories(JSON.parse('{"__proto__": "user-input"}')) // from this point onwards, every single object literal in the program // will contain the 'category' key, with user controlled value console.log(JSON.stringify({}.category)) // prints 'user-input' // this can affect the execution of the main program in case it also makes // use of an object key called 'category'. for example, if the main programs // happens to have code like this: const x = {} // some object in the main program (not necessarily empty) if (x.category) { // this block will always be executed, effectively // changing the behavior of the main program. console.log('Do something') } else { console.log('Do something else') } ``` For more information about javascript prototype pollution, see [1]. ## Patches A patch is included in versions [5.7.3](https://github.com/aws/jsii-compiler/releases/tag/v5.7.3), [5.6.4](https://github.com/aws/jsii-compiler/releases/tag/v5.6.4), [5.5.15](https://github.com/aws/jsii-compiler/releases/tag/v5.5.15), [5.4.46](https://github.com/aws/jsii-compiler/releases/tag/v5.4.46) ## Workarounds Sanitize user input to configureCategories() by stripping the __proto__ property if detected. ## References If you have any questions or comments about this advisory, we ask that you contact AWS/Amazon Security via our issue reporting page [2] or directly via email to [[email protected]](mailto:[email protected]). Please do not create a public GitHub issue. [1] https://learn.snyk.io/lesson/prototype-pollution/ [2] [https://aws.amazon.com/security/issue-reporting](https://aws.amazon.com/security/vulnerability-reporting) ## Credits We would like to thank _Tariq Hawis_ for collaborating on this issue through the coordinated vulnerability disclosure process.
[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.