@socketsecurity/cli 0.14.29 → 0.14.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/translations.json CHANGED
@@ -1,36 +1,7 @@
1
1
  {
2
- "issueCategories": {
3
- "license": {
4
- "title": "License"
5
- },
6
- "maintenance": {
7
- "title": "Maintenance"
8
- },
9
- "miscellaneous": {
10
- "title": "Miscellaneous"
11
- },
12
- "quality": {
13
- "title": "Quality"
14
- },
15
- "supplyChainRisk": {
16
- "title": "Supply chain risk"
17
- },
18
- "vulnerability": {
19
- "title": "Vulnerability"
20
- }
21
- },
22
- "issueSeverity": {
23
- "0": "Low",
24
- "1": "Medium",
25
- "2": "High",
26
- "3": "Critical"
27
- },
28
2
  "issues": {
29
3
  "badEncoding": {
30
4
  "description": "Source files are encoded using a non-standard text encoding.",
31
- "props": {
32
- "encoding": "Encoding"
33
- },
34
5
  "suggestion": "Ensure all published files are encoded using a standard encoding such as UTF8, UTF16, UTF32, SHIFT-JIS, etc.",
35
6
  "title": "Bad text encoding",
36
7
  "emoji": "⚠️"
@@ -43,113 +14,116 @@
43
14
  },
44
15
  "badSemverDependency": {
45
16
  "description": "Package has dependencies with an invalid semantic version. This could be a sign of beta, low quality, or unmaintained dependencies.",
46
- "props": {
47
- "packageName": "Package name",
48
- "packageVersion": "Package version"
49
- },
50
17
  "suggestion": "Switch to a version of the dependency with valid semver or override the dependency version if it is determined to be problematic.",
51
18
  "title": "Bad dependency semver",
52
19
  "emoji": "⚠️"
53
20
  },
54
21
  "bidi": {
55
- "description": "Source files contain bidirectional unicode control characters. This could indicate a Trojan source supply chain attack. See: trojansource.code for more information.",
22
+ "description": "Source files contain bidirectional unicode control characters. This could indicate a Trojan source supply chain attack. See: trojansource.codes for more information.",
56
23
  "suggestion": "Remove bidirectional unicode control characters, or clearly document what they are used for.",
57
24
  "title": "Bidirectional unicode control characters",
58
25
  "emoji": "⚠️"
59
26
  },
60
27
  "binScriptConfusion": {
61
- "description": "This package has multiple bin scripts with the same name. This can cause non-deterministic behavior when installing or could be a sign of a supply chain attack",
62
- "props": {
63
- "binScript": "Bin script"
64
- },
65
- "suggestion": "Consider removing one of the conflicting packages. Packages should only export bin scripts with their name",
28
+ "description": "This package has multiple bin scripts with the same name. This can cause non-deterministic behavior when installing or could be a sign of a supply chain attack.",
29
+ "suggestion": "Consider removing one of the conflicting packages. Packages should only export bin scripts with their name.",
66
30
  "title": "Bin script confusion",
67
31
  "emoji": "😵‍💫"
68
32
  },
69
33
  "chronoAnomaly": {
70
34
  "description": "Semantic versions published out of chronological order.",
71
- "props": {
72
- "prevChronoDate": "Previous chronological date",
73
- "prevChronoVersion": "Previous chronological version",
74
- "prevSemverDate": "Previous semver date",
75
- "prevSemverVersion": "Previous semver version"
76
- },
77
35
  "suggestion": "This could either indicate dependency confusion or a patched vulnerability.",
78
36
  "title": "Chronological version anomaly",
79
37
  "emoji": "⚠️"
80
38
  },
39
+ "compromisedSSHKey": {
40
+ "description": "Project maintainer's SSH key has been compromised.",
41
+ "suggestion": "The maintainer should revoke the compromised key and generate a new one.",
42
+ "title": "Compromised SSH key",
43
+ "emoji": "🔑"
44
+ },
81
45
  "criticalCVE": {
82
46
  "description": "Contains a Critical Common Vulnerability and Exposure (CVE).",
83
- "props": {
84
- "id": "Id",
85
- "severity": "Severity",
86
- "title": "Title",
87
- "url": "URL"
88
- },
89
47
  "suggestion": "Remove or replace dependencies that include known critical CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.",
90
48
  "title": "Critical CVE",
91
49
  "emoji": "⚠️"
92
50
  },
93
51
  "cve": {
94
52
  "description": "Contains a high severity Common Vulnerability and Exposure (CVE).",
95
- "props": {
96
- "id": "Id",
97
- "severity": "Severity",
98
- "title": "Title",
99
- "url": "URL",
100
- "vulnerable_versions": "Vulnerable versions"
101
- },
102
53
  "suggestion": "Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.",
103
- "title": "CVE",
54
+ "title": "High CVE",
104
55
  "emoji": "⚠️"
105
56
  },
106
57
  "debugAccess": {
107
58
  "description": "Uses debug, reflection and dynamic code execution features.",
108
- "props": {
109
- "module": "Module"
110
- },
111
59
  "suggestion": "Removing the use of debug will reduce the risk of any reflection and dynamic code execution.",
112
60
  "title": "Debug access",
113
61
  "emoji": "⚠️"
114
62
  },
115
63
  "deprecated": {
116
64
  "description": "The maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.",
117
- "props": {
118
- "reason": "Reason"
119
- },
120
65
  "suggestion": "Research the state of the package and determine if there are non-deprecated versions that can be used, or if it should be replaced with a new, supported solution.",
121
66
  "title": "Deprecated",
122
67
  "emoji": "⚠️"
123
68
  },
124
69
  "deprecatedException": {
125
- "description": "Contains a known deprecated SPDX license exception.",
126
- "props": {
127
- "comments": "Comments",
128
- "exceptionId": "Exception id"
129
- },
70
+ "description": "(Experimental) Contains a known deprecated SPDX license exception.",
130
71
  "suggestion": "Fix the license so that it no longer contains deprecated SPDX license exceptions.",
131
72
  "title": "Deprecated SPDX exception",
132
73
  "emoji": "⚠️"
133
74
  },
75
+ "explicitlyUnlicensedItem": {
76
+ "description": "(Experimental) Something was found which is explicitly marked as unlicensed.",
77
+ "suggestion": "Manually review your policy on such materials",
78
+ "title": "Explicitly Unlicensed Item",
79
+ "emoji": "⚠️"
80
+ },
81
+ "unidentifiedLicense": {
82
+ "description": "(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.",
83
+ "suggestion": "Manually review the license contents.",
84
+ "title": "Unidentified License",
85
+ "emoji": "⚠️"
86
+ },
87
+ "noLicenseFound": {
88
+ "description": "(Experimental) License information could not be found.",
89
+ "suggestion": "Manually review the licensing",
90
+ "title": "No License Found",
91
+ "emoji": "⚠️"
92
+ },
93
+ "copyleftLicense": {
94
+ "description": "(Experimental) Copyleft license information was found.",
95
+ "suggestion": "Determine whether use of copyleft material works for you",
96
+ "title": "Copyleft License",
97
+ "emoji": "⚠️"
98
+ },
99
+ "licenseSpdxDisj": {
100
+ "description": "This package is not allowed per your license policy. Review the package's license to ensure compliance.",
101
+ "suggestion": "Find a package that does not violate your license policy or adjust your policy to allow this package's license.",
102
+ "title": "License Policy Violation",
103
+ "emoji": "⚠️"
104
+ },
105
+ "nonpermissiveLicense": {
106
+ "description": "(Experimental) A license not known to be considered permissive was found.",
107
+ "suggestion": "Determine whether use of material not offered under a known permissive license works for you",
108
+ "title": "Non-permissive License",
109
+ "emoji": "⚠️"
110
+ },
111
+ "miscLicenseIssues": {
112
+ "description": "(Experimental) A package's licensing information has fine-grained problems.",
113
+ "suggestion": "Consult the alert's description and location information for more information",
114
+ "title": "Misc. License Issues",
115
+ "emoji": "⚠️"
116
+ },
134
117
  "deprecatedLicense": {
135
- "description": "License is deprecated which may have legal implications regarding the package's use.",
136
- "props": {
137
- "licenseId": "License id"
138
- },
118
+ "description": "(Experimental) License is deprecated which may have legal implications regarding the package's use.",
139
119
  "suggestion": "Update or change the license to a well-known or updated license.",
140
120
  "title": "Deprecated license",
141
121
  "emoji": "⚠️"
142
122
  },
143
123
  "didYouMean": {
144
124
  "description": "Package name is similar to other popular packages and may not be the package you want.",
145
- "props": {
146
- "alternatePackage": "Alternate package",
147
- "downloads": "Downloads",
148
- "downloadsRatio": "Download ratio",
149
- "editDistance": "Edit distance"
150
- },
151
125
  "suggestion": "Use care when consuming similarly named packages and ensure that you did not intend to consume a different package. Malicious packages often publish using similar names as existing popular packages.",
152
- "title": "Potential typo squat",
126
+ "title": "Possible typosquat attack",
153
127
  "emoji": "🧐"
154
128
  },
155
129
  "dynamicRequire": {
@@ -160,77 +134,81 @@
160
134
  },
161
135
  "emptyPackage": {
162
136
  "description": "Package does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.",
163
- "props": {
164
- "linesOfCode": "Lines of code"
165
- },
166
137
  "suggestion": "Remove dependencies that do not export any code or functionality and ensure the package version includes all of the files it is supposed to.",
167
138
  "title": "Empty package",
168
139
  "emoji": "⚠️"
169
140
  },
170
141
  "envVars": {
171
142
  "description": "Package accesses environment variables, which may be a sign of credential stuffing or data theft.",
172
- "props": {
173
- "envVars": "Environment variables"
174
- },
175
143
  "suggestion": "Packages should be clear about which environment variables they access, and care should be taken to ensure they only access environment variables they claim to.",
176
144
  "title": "Environment variable access",
177
145
  "emoji": "⚠️"
178
146
  },
179
147
  "extraneousDependency": {
180
- "description": "Package optionally loads a dependency which is not specified within any of the package.tson dependency fields. It may inadvertently be importing dependencies specified by other packages.",
181
- "props": {
182
- "name": "Name"
183
- },
184
- "suggestion": "Specify all optionally loaded dependencies in optionalDependencies within package.tson.",
148
+ "description": "Package optionally loads a dependency which is not specified within any of the package.json dependency fields. It may inadvertently be importing dependencies specified by other packages.",
149
+ "suggestion": "Specify all optionally loaded dependencies in optionalDependencies within package.json.",
185
150
  "title": "Extraneous dependency",
186
151
  "emoji": "⚠️"
187
152
  },
188
153
  "fileDependency": {
189
154
  "description": "Contains a dependency which resolves to a file. This can obfuscate analysis and serves no useful purpose.",
190
- "props": {
191
- "filePath": "File path",
192
- "packageName": "Package name"
193
- },
194
- "suggestion": "Remove the dependency specified by a file resolution string from package.tson and update any bare name imports that referenced it before to use relative path strings.",
155
+ "suggestion": "Remove the dependency specified by a file resolution string from package.json and update any bare name imports that referenced it before to use relative path strings.",
195
156
  "title": "File dependency",
196
157
  "emoji": "⚠️"
197
158
  },
198
159
  "filesystemAccess": {
199
160
  "description": "Accesses the file system, and could potentially read sensitive data.",
200
- "props": {
201
- "module": "Module"
202
- },
203
161
  "suggestion": "If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.",
204
162
  "title": "Filesystem access",
205
163
  "emoji": "⚠️"
206
164
  },
165
+ "floatingDependency": {
166
+ "description": "Package has a dependency with a floating version range. This can cause issues if the dependency publishes a new major version.",
167
+ "suggestion": "Packages should specify properly semver ranges to avoid version conflicts.",
168
+ "title": "Wildcard dependency",
169
+ "emoji": "🎈"
170
+ },
207
171
  "gitDependency": {
208
172
  "description": "Contains a dependency which resolves to a remote git URL. Dependencies fetched from git URLs are not immutable can be used to inject untrusted code or reduce the likelihood of a reproducible install.",
209
- "props": {
210
- "packageName": "Package name",
211
- "url": "URL"
212
- },
213
173
  "suggestion": "Publish the git dependency to npm or a private package repository and consume it from there.",
214
174
  "title": "Git dependency",
215
175
  "emoji": "🍣"
216
176
  },
217
177
  "gitHubDependency": {
218
178
  "description": "Contains a dependency which resolves to a GitHub URL. Dependencies fetched from GitHub specifiers are not immutable can be used to inject untrusted code or reduce the likelihood of a reproducible install.",
219
- "props": {
220
- "commitsh": "Commit-ish (commit, branch, tag or version)",
221
- "githubRepo": "Github repo",
222
- "githubUser": "Github user",
223
- "packageName": "Package name"
224
- },
225
179
  "suggestion": "Publish the GitHub dependency to npm or a private package repository and consume it from there.",
226
180
  "title": "GitHub dependency",
227
181
  "emoji": "⚠️"
228
182
  },
183
+ "gptAnomaly": {
184
+ "description": "AI has identified unusual behaviors that may pose a security risk.",
185
+ "suggestion": "An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.",
186
+ "title": "AI-detected potential code anomaly",
187
+ "emoji": "🤔"
188
+ },
189
+ "gptDidYouMean": {
190
+ "description": "AI has identified this package as a potential typosquat of a more popular package. This suggests that the package may be intentionally mimicking another package's name, description, or other metadata.",
191
+ "suggestion": "Given the AI system's identification of this package as a potential typosquat, please verify that you did not intend to install a different package. Be cautious, as malicious packages often use names similar to popular ones.",
192
+ "title": "AI-detected possible typosquat",
193
+ "emoji": "🤖"
194
+ },
195
+ "gptMalware": {
196
+ "description": "AI has identified this package as malware. This is a strong signal that the package may be malicious.",
197
+ "suggestion": "Given the AI system's identification of this package as malware, extreme caution is advised. It is recommended to avoid downloading or installing this package until the threat is confirmed or flagged as a false positive.",
198
+ "title": "AI-detected potential malware",
199
+ "emoji": "🤖"
200
+ },
201
+ "gptSecurity": {
202
+ "description": "AI has determined that this package may contain potential security issues or vulnerabilities.",
203
+ "suggestion": "An AI system identified potential security problems in this package. It is advised to review the package thoroughly and assess the potential risks before installation. You may also consider reporting the issue to the package maintainer or seeking alternative solutions with a stronger security posture.",
204
+ "title": "AI-detected potential security risk",
205
+ "emoji": "🤖"
206
+ },
229
207
  "hasNativeCode": {
230
- "description": "Contains native code which could be a vector to obscure malicious code, and generally decrease the likelihood of reproducible or reliable installs.",
231
- "suggestion": "Ensure that native code bindings are expected. Consumers may consider pure JS and functionally similar alternatives to avoid the challenges and risks associated with native code bindings.",
208
+ "description": "Contains native code (e.g., compiled binaries or shared libraries). Including native code can obscure malicious behavior.",
209
+ "suggestion": "Verify that the inclusion of native code is expected and necessary for this package's functionality. If it is unnecessary or unexpected, consider using alternative packages without native code to mitigate potential risks.",
232
210
  "title": "Native code",
233
- "emoji": "🫣"
211
+ "emoji": "🛠️"
234
212
  },
235
213
  "highEntropyStrings": {
236
214
  "description": "Contains high entropy strings. This could be a sign of encrypted data, leaked secrets or obfuscated code.",
@@ -246,37 +224,20 @@
246
224
  },
247
225
  "httpDependency": {
248
226
  "description": "Contains a dependency which resolves to a remote HTTP URL which could be used to inject untrusted code and reduce overall package reliability.",
249
- "props": {
250
- "packageName": "Package name",
251
- "url": "URL"
252
- },
253
227
  "suggestion": "Publish the HTTP URL dependency to npm or a private package repository and consume it from there.",
254
228
  "title": "HTTP dependency",
255
229
  "emoji": "🥩"
256
230
  },
257
231
  "installScripts": {
258
232
  "description": "Install scripts are run when the package is installed. The majority of malware in npm is hidden in install scripts.",
259
- "props": {
260
- "script": "Script",
261
- "source": "Source"
262
- },
263
233
  "suggestion": "Packages should not be running non-essential scripts during install and there are often solutions to problems people solve with install scripts that can be run at publish time instead.",
264
234
  "title": "Install scripts",
265
235
  "emoji": "📜"
266
236
  },
267
- "gptMalware": {
268
- "description": "Artificial intelligence has determined that this package likely contains malicious behavior",
269
- "props": {
270
- "notes": "Does this contain malware?"
271
- },
272
- "suggestion": "Packages which contain malware should never be installed. This package has been reported to npm for removal by socket",
273
- "title": "AI detected malware",
274
- "emoji": "🤖"
275
- },
276
237
  "invalidPackageJSON": {
277
- "description": "Package has an invalid package.tson and can cause installation problems if you try to use it.",
278
- "suggestion": "Fix syntax errors in the invalid package.tson and publish a new version with a valid package.tson. Consumers can use npm overrides to force a version that does not have this problem if one exists.",
279
- "title": "Invalid package.tson",
238
+ "description": "Package has an invalid manifest file and can cause installation problems if you try to use it.",
239
+ "suggestion": "Fix syntax errors in the manifest file and publish a new version. Consumers can use npm overrides to force a version that does not have this problem if one exists.",
240
+ "title": "Invalid manifest file",
280
241
  "emoji": "🤒"
281
242
  },
282
243
  "invisibleChars": {
@@ -286,21 +247,13 @@
286
247
  "emoji": "⚠️"
287
248
  },
288
249
  "licenseChange": {
289
- "description": "Package license has recently changed.",
290
- "props": {
291
- "newLicenseId": "New license id",
292
- "prevLicenseId": "Previous license id"
293
- },
250
+ "description": "(Experimental) Package license has recently changed.",
294
251
  "suggestion": "License changes should be reviewed carefully to inform ongoing use. Packages should avoid making major changes to their license type.",
295
252
  "title": "License change",
296
253
  "emoji": "⚠️"
297
254
  },
298
255
  "licenseException": {
299
- "description": "Contains an SPDX license exception.",
300
- "props": {
301
- "comments": "Comments",
302
- "exceptionId": "Exception id"
303
- },
256
+ "description": "(Experimental) Contains an SPDX license exception.",
304
257
  "suggestion": "License exceptions should be carefully reviewed.",
305
258
  "title": "License exception",
306
259
  "emoji": "⚠️"
@@ -312,51 +265,44 @@
312
265
  "emoji": "⚠️"
313
266
  },
314
267
  "missingTarball": {
315
- "description": "This package is missing it's tarball. It could be removed from the npm registry or there may have been an error when publishing.",
268
+ "description": "This package is missing it's tarball. It could be removed from the npm registry or there may have been an error when publishing.",
316
269
  "suggestion": "This package cannot be analyzed or installed due to missing data.",
317
270
  "title": "Missing package tarball",
318
271
  "emoji": "❔"
319
272
  },
320
273
  "majorRefactor": {
321
274
  "description": "Package has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.",
322
- "props": {
323
- "changedPercent": "Change percentage",
324
- "curSize": "Current amount of lines",
325
- "linesChanged": "Lines changed",
326
- "prevSize": "Previous amount of lines"
327
- },
328
275
  "suggestion": "Consider waiting before upgrading to see if any issues are discovered, or be prepared to scrutinize any bugs or subtle changes the major refactor may bring. Publishers my consider publishing beta versions of major refactors to limit disruption to parties interested in the new changes.",
329
276
  "title": "Major refactor",
330
277
  "emoji": "⚠️"
331
278
  },
332
279
  "malware": {
333
- "description": "This package is malware. We have asked npm to remove it.",
334
- "props": {
335
- "id": "Id",
336
- "note": "Note"
337
- },
338
- "title": "Known Malware",
280
+ "description": "This package is malware. We have asked the package registry to remove it.",
281
+ "title": "Known malware",
339
282
  "suggestion": "It is strongly recommended that malware is removed from your codebase.",
340
283
  "emoji": "☠️"
341
284
  },
285
+ "manifestConfusion": {
286
+ "description": "This package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.",
287
+ "title": "Manifest confusion",
288
+ "suggestion": "Packages with inconsistent metadata may be corrupted or malicious.",
289
+ "emoji": "🥸"
290
+ },
291
+ "mediumCVE": {
292
+ "description": "Contains a medium severity Common Vulnerability and Exposure (CVE).",
293
+ "suggestion": "Remove or replace dependencies that include known medium severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.",
294
+ "title": "Medium CVE",
295
+ "emoji": "⚠️"
296
+ },
342
297
  "mildCVE": {
343
298
  "description": "Contains a low severity Common Vulnerability and Exposure (CVE).",
344
- "props": {
345
- "id": "Id",
346
- "severity": "Severity",
347
- "title": "Title",
348
- "url": "URL"
349
- },
350
299
  "suggestion": "Remove or replace dependencies that include known low severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.",
351
- "title": "Mild CVE",
300
+ "title": "Low CVE",
352
301
  "emoji": "⚠️"
353
302
  },
354
303
  "minifiedFile": {
355
- "description": "This package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.",
356
- "props": {
357
- "confidence": "Confidence"
358
- },
359
- "suggestion": "In many cases minified code is harmless, however minified code can be used to hide a supply chain attack. Consider not shipping minified code on npm.",
304
+ "description": "This package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.",
305
+ "suggestion": "In many cases minified code is harmless, however minified code can be used to hide a supply chain attack. Consider not shipping minified code on npm.",
360
306
  "title": "Minified code",
361
307
  "emoji": "⚠️"
362
308
  },
@@ -367,78 +313,62 @@
367
313
  "emoji": "🫥"
368
314
  },
369
315
  "missingDependency": {
370
- "description": "A required dependency is not declared in package.tson and may prevent the package from working.",
371
- "props": {
372
- "name": "Name"
373
- },
374
- "suggestion": "The package should define the missing dependency inside of package.tson and publish a new version. Consumers may have to install the missing dependency themselves as long as the dependency remains missing. If the dependency is optional, add it to optionalDependencies and handle the missing case.",
316
+ "description": "A required dependency is not declared in package.json and may prevent the package from working.",
317
+ "suggestion": "The package should define the missing dependency inside of package.json and publish a new version. Consumers may have to install the missing dependency themselves as long as the dependency remains missing. If the dependency is optional, add it to optionalDependencies and handle the missing case.",
375
318
  "title": "Missing dependency",
376
319
  "emoji": "⚠️"
377
320
  },
378
321
  "missingLicense": {
379
- "description": "Package does not have a license and consumption legal status is unknown.",
380
- "suggestion": "A new version of the package should be published that includes a valid SPDX license in a license file, pacakge.tson license field or mentioned in the README.",
322
+ "description": "(Experimental) Package does not have a license and consumption legal status is unknown.",
323
+ "suggestion": "A new version of the package should be published that includes a valid SPDX license in a license file, package.json license field or mentioned in the README.",
381
324
  "title": "Missing license",
382
325
  "emoji": "⚠️"
383
326
  },
384
327
  "mixedLicense": {
385
- "description": "Package contains multiple licenses.",
386
- "props": {
387
- "licenseId": "License Id"
388
- },
389
- "suggestion": "A new version of the package should be published that includes a single license. Consumers may seek clarification from the package author. Ensure that the license details are consistent across the LICENSE file, package.tson license field and license details mentioned in the README.",
328
+ "description": "(Experimental) Package contains multiple licenses.",
329
+ "suggestion": "A new version of the package should be published that includes a single license. Consumers may seek clarification from the package author. Ensure that the license details are consistent across the LICENSE file, package.json license field and license details mentioned in the README.",
390
330
  "title": "Mixed license",
391
331
  "emoji": "⚠️"
392
332
  },
333
+ "ambiguousClassifier": {
334
+ "description": "(Experimental) An ambiguous license classifier was found.",
335
+ "suggestion": "A specific license or licenses should be identified",
336
+ "title": "Ambiguous License Classifier",
337
+ "emoji": "⚠️"
338
+ },
393
339
  "modifiedException": {
394
- "description": "Package contains a modified version of an SPDX license exception. Please read carefully before using this code.",
395
- "props": {
396
- "comments": "Comments",
397
- "exceptionId": "Exception id",
398
- "similarity": "Similarity"
399
- },
340
+ "description": "(Experimental) Package contains a modified version of an SPDX license exception. Please read carefully before using this code.",
400
341
  "suggestion": "Packages should avoid making modifications to standard license exceptions.",
401
342
  "title": "Modified license exception",
402
343
  "emoji": "⚠️"
403
344
  },
404
345
  "modifiedLicense": {
405
- "description": "Package contains a modified version of an SPDX license. Please read carefully before using this code.",
406
- "props": {
407
- "licenseId": "License id",
408
- "similarity": "Similarity"
409
- },
346
+ "description": "(Experimental) Package contains a modified version of an SPDX license. Please read carefully before using this code.",
410
347
  "suggestion": "Packages should avoid making modifications to standard licenses.",
411
348
  "title": "Modified license",
412
349
  "emoji": "⚠️"
413
350
  },
414
351
  "networkAccess": {
415
352
  "description": "This module accesses the network.",
416
- "props": {
417
- "module": "Module"
418
- },
419
- "suggestion": "Packages should remove all network access that isn't functionally unnecessary. Consumers should audit network access to ensure legitimate use.",
353
+ "suggestion": "Packages should remove all network access that is functionally unnecessary. Consumers should audit network access to ensure legitimate use.",
420
354
  "title": "Network access",
421
355
  "emoji": "⚠️"
422
356
  },
423
357
  "newAuthor": {
424
358
  "description": "A new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.",
425
- "props": {
426
- "newAuthor": "New author",
427
- "prevAuthor": "Previous author"
428
- },
429
359
  "suggestion": "Scrutinize new collaborator additions to packages because they now have the ability to publish code into your dependency tree. Packages should avoid frequent or unnecessary additions or changes to publishing rights.",
430
360
  "title": "New author",
431
361
  "emoji": "⚠️"
432
362
  },
433
363
  "noAuthorData": {
434
- "description": "Package does not specify a list of contributors or an author in package.tson.",
435
- "suggestion": "Add a author field or contributors array to package.tson.",
364
+ "description": "Package does not specify a list of contributors or an author in package.json.",
365
+ "suggestion": "Add a author field or contributors array to package.json.",
436
366
  "title": "No contributors or author data",
437
367
  "emoji": "⚠️"
438
368
  },
439
369
  "noBugTracker": {
440
- "description": "Package does not have a linked bug tracker in package.tson.",
441
- "suggestion": "Add a bugs field to package.tson. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#bugs",
370
+ "description": "Package does not have a linked bug tracker in package.json.",
371
+ "suggestion": "Add a bugs field to package.json. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#bugs",
442
372
  "title": "No bug tracker",
443
373
  "emoji": "⚠️"
444
374
  },
@@ -450,7 +380,7 @@
450
380
  },
451
381
  "noRepository": {
452
382
  "description": "Package does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.",
453
- "suggestion": "Add a repository field to package.tson. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#repository",
383
+ "suggestion": "Add a repository field to package.json. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#repository",
454
384
  "title": "No repository",
455
385
  "emoji": "⚠️"
456
386
  },
@@ -468,43 +398,37 @@
468
398
  },
469
399
  "noWebsite": {
470
400
  "description": "Package does not have a website.",
471
- "suggestion": "Add a homepage field to package.tson. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#homepage",
401
+ "suggestion": "Add a homepage field to package.json. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#homepage",
472
402
  "title": "No website",
473
403
  "emoji": "⚠️"
474
404
  },
475
405
  "nonFSFLicense": {
476
- "description": "Package has a non-FSF-approved license.",
477
- "props": {
478
- "licenseId": "License id"
479
- },
406
+ "description": "(Experimental) Package has a non-FSF-approved license.",
480
407
  "title": "Non FSF license",
408
+ "suggestion": "Consider the terms of the license for your given use case.",
481
409
  "emoji": "⚠️"
482
410
  },
483
411
  "nonOSILicense": {
484
- "description": "Package has a non-OSI-approved license.",
485
- "props": {
486
- "licenseId": "License id"
487
- },
412
+ "description": "(Experimental) Package has a non-OSI-approved license.",
488
413
  "title": "Non OSI license",
414
+ "suggestion": "Consider the terms of the license for your given use case.",
489
415
  "emoji": "⚠️"
490
416
  },
491
417
  "nonSPDXLicense": {
492
- "description": "Package contains a non-standard license somewhere. Please read carefully before using.",
493
- "suggestion": "Package should adopt a standard SPDX license consistently across all license locations (LICENSE files, package.tson license fields, and READMEs).",
418
+ "description": "(Experimental) Package contains a non-standard license somewhere. Please read carefully before using.",
419
+ "suggestion": "Package should adopt a standard SPDX license consistently across all license locations (LICENSE files, package.json license fields, and READMEs).",
494
420
  "title": "Non SPDX license",
495
421
  "emoji": "⚠️"
496
422
  },
497
423
  "notice": {
498
- "description": "Package contains a legal notice. This could increase your exposure to legal risk when using this project.",
424
+ "description": "(Experimental) Package contains a legal notice. This could increase your exposure to legal risk when using this project.",
499
425
  "title": "Legal notice",
426
+ "suggestion": "Consider the implications of the legal notice for your given use case.",
500
427
  "emoji": "⚠️"
501
428
  },
502
429
  "obfuscatedFile": {
503
- "description": "Obfuscated files are intentionally packed to hide their behavior. This could be a sign of malware",
504
- "props": {
505
- "confidence": "Confidence"
506
- },
507
- "suggestion": "Packages should not obfuscate their code. Consider not using packages with obfuscated code",
430
+ "description": "Obfuscated files are intentionally packed to hide their behavior. This could be a sign of malware.",
431
+ "suggestion": "Packages should not obfuscate their code. Consider not using packages with obfuscated code",
508
432
  "title": "Obfuscated code",
509
433
  "emoji": "⚠️"
510
434
  },
@@ -515,117 +439,109 @@
515
439
  "emoji": "⚠️"
516
440
  },
517
441
  "peerDependency": {
518
- "description": "Package specifies peer dependencies in package.tson.",
519
- "props": {
520
- "name": "Name"
521
- },
442
+ "description": "Package specifies peer dependencies in package.json.",
522
443
  "suggestion": "Peer dependencies are fragile and can cause major problems across version changes. Be careful when updating this dependency and its peers.",
523
444
  "title": "Peer dependency",
524
445
  "emoji": "⚠️"
525
446
  },
447
+ "potentialVulnerability": {
448
+ "description": "Initial human review suggests the presence of a vulnerability in this package. It is pending further analysis and confirmation.",
449
+ "suggestion": "It is advisable to proceed with caution. Engage in a review of the package's security aspects and consider reaching out to the package maintainer for the latest information or patches.",
450
+ "title": "Potential vulnerability",
451
+ "emoji": "🚧"
452
+ },
526
453
  "semverAnomaly": {
527
454
  "description": "Package semver skipped several versions, this could indicate a dependency confusion attack or indicate the intention of disruptive breaking changes or major priority shifts for the project.",
528
- "props": {
529
- "newVersion": "New version",
530
- "prevVersion": "Previous version"
531
- },
532
455
  "suggestion": "Packages should follow semantic versions conventions by not skipping subsequent version numbers. Consumers should research the purpose of the skipped version number.",
533
456
  "title": "Semver anomaly",
534
457
  "emoji": "⚠️"
535
458
  },
536
459
  "shellAccess": {
537
460
  "description": "This module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.",
538
- "props": {
539
- "module": "Module"
540
- },
541
461
  "suggestion": "Packages should avoid accessing the shell which can reduce portability, and make it easier for malicious shell access to be introduced.",
542
462
  "title": "Shell access",
543
463
  "emoji": "⚠️"
544
464
  },
545
465
  "shellScriptOverride": {
546
- "description": "This package re-exports a well known shell command via an npm bin script. This is possibly a supply chain attack",
547
- "props": {
548
- "binScript": "Bin script"
549
- },
466
+ "description": "This package re-exports a well known shell command via an npm bin script. This is possibly a supply chain attack.",
550
467
  "suggestion": "Packages should not export bin scripts which conflict with well known shell commands",
551
468
  "title": "Bin script shell injection",
552
469
  "emoji": "🦀"
553
470
  },
471
+ "shrinkwrap": {
472
+ "description": "Package contains a shrinkwrap file. This may allow the package to bypass normal install procedures.",
473
+ "suggestion": "Packages should never use npm shrinkwrap files due to the dangers they pose.",
474
+ "title": "NPM Shrinkwrap",
475
+ "emoji": "🧊"
476
+ },
477
+ "socketUpgradeAvailable": {
478
+ "description": "Package can be replaced with a Socket optimized override.",
479
+ "suggestion": "Run `npx socket optimize` in your repository to optimize your dependencies.",
480
+ "title": "Socket optimized override available",
481
+ "emoji": "🔄"
482
+ },
483
+ "suspiciousStarActivity": {
484
+ "description": "The GitHub repository of this package may have been artificially inflated with stars (from bots, crowdsourcing, etc.).",
485
+ "title": "Suspicious Stars on GitHub",
486
+ "suggestion": "This could be a sign of spam, fraud, or even a supply chain attack. The package should be carefully reviewed before installing.",
487
+ "emoji": "⚠️"
488
+ },
554
489
  "suspiciousString": {
555
- "description": "This package contains suspicious text patterns which are commonly associated with bad behavior",
556
- "props": {
557
- "explanation": "Explanation",
558
- "pattern": "Pattern"
559
- },
490
+ "description": "This package contains suspicious text patterns which are commonly associated with bad behavior.",
560
491
  "suggestion": "The package code should be reviewed before installing",
561
492
  "title": "Suspicious strings",
562
493
  "emoji": "⚠️"
563
494
  },
564
495
  "telemetry": {
565
- "description": "This package contains telemetry which tracks you.",
566
- "props": {
567
- "id": "Id",
568
- "note": "Note"
569
- },
496
+ "description": "This package contains telemetry which tracks how it is used.",
570
497
  "title": "Telemetry",
498
+ "suggestion": "Most telemetry comes with settings to disable it. Consider disabling telemetry if you do not want to be tracked.",
571
499
  "emoji": "📞"
572
500
  },
573
501
  "trivialPackage": {
574
502
  "description": "Packages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency.",
575
- "props": {
576
- "linesOfCode": "Lines of code"
577
- },
578
503
  "suggestion": "Removing this package as a dependency and implementing its logic will reduce supply chain risk.",
579
504
  "title": "Trivial Package",
580
505
  "emoji": "⚠️"
581
506
  },
582
507
  "troll": {
583
508
  "description": "This package is a joke, parody, or includes undocumented or hidden behavior unrelated to its primary function.",
584
- "props": {
585
- "id": "Id",
586
- "note": "Note"
587
- },
588
- "title": "Protestware/Troll package",
509
+ "title": "Protestware or potentially unwanted behavior",
510
+ "suggestion": "Consider that consuming this package may come along with functionality unrelated to its primary purpose.",
589
511
  "emoji": "🧌"
590
512
  },
591
513
  "typeModuleCompatibility": {
592
- "description": "Package is CommonJS, but has a dependency which is type: \"module\". The two are likely incompatible.",
514
+ "description": "Package is CommonJS, but has a dependency which is type: \"module\". The two are likely incompatible.",
593
515
  "suggestion": "The package needs to switch to dynamic import on the esmodule dependency, or convert to esm itself. Consumers may experience errors resulting from this incompatibility.",
594
516
  "title": "CommonJS depending on ESModule",
595
517
  "emoji": "⚠️"
596
518
  },
597
519
  "uncaughtOptionalDependency": {
598
520
  "description": "Package uses an optional dependency without handling a missing dependency exception. If you install it without the optional dependencies then it could cause runtime errors.",
599
- "props": {
600
- "name": "Name"
601
- },
602
521
  "suggestion": "Package should handle the loading of the dependency when it is not present, or convert the optional dependency into a regular dependency.",
603
522
  "title": "Uncaught optional dependency",
604
523
  "emoji": "⚠️"
605
524
  },
606
525
  "unclearLicense": {
607
526
  "description": "Package contains a reference to a license without a matching LICENSE file.",
608
- "props": {
609
- "possibleLicenseId": "Possible license id"
610
- },
611
- "suggestion": "Add a LICENSE file that matches the license field in package.tson. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#license",
527
+ "suggestion": "Add a LICENSE file that matches the license field in package.json. https://docs.npmjs.com/cli/v8/configuring-npm/package-json#license",
612
528
  "title": "Unclear license",
613
529
  "emoji": "⚠️"
614
530
  },
615
531
  "unmaintained": {
616
- "description": "Package has not been updated in more than a year and may be unmaintained. Problems with the package may go unaddressed.",
617
- "props": {
618
- "lastPublish": "Last publish"
619
- },
532
+ "description": "Package has not been updated in more than 5 years and may be unmaintained. Problems with the package may go unaddressed.",
620
533
  "suggestion": "Package should publish periodic maintenance releases if they are maintained, or deprecate if they have no intention in further maintenance.",
621
534
  "title": "Unmaintained",
622
535
  "emoji": "⚠️"
623
536
  },
537
+ "unpopularPackage": {
538
+ "description": "This package is not very popular.",
539
+ "suggestion": "Unpopular packages may have less maintenance and contain other problems.",
540
+ "title": "Unpopular package",
541
+ "emoji": "🏚️"
542
+ },
624
543
  "unpublished": {
625
544
  "description": "Package version was not found on the registry. It may exist on a different registry and need to be configured to pull from that registry.",
626
- "props": {
627
- "version": "The version that was not found"
628
- },
629
545
  "suggestion": "Packages can be removed from the registry by manually un-publishing, a security issue removal, or may simply never have been published to the registry. Reliance on these packages will cause problem when they are not found.",
630
546
  "title": "Unpublished package",
631
547
  "emoji": "⚠️"
@@ -637,45 +553,32 @@
637
553
  "emoji": "🕵️"
638
554
  },
639
555
  "unsafeCopyright": {
640
- "description": "Package contains a copyright but no license. Using this package may expose you to legal risk.",
641
- "suggestion": "Clarify the license type by adding a license field to package.tson and a LICENSE file.",
556
+ "description": "(Experimental) Package contains a copyright but no license. Using this package may expose you to legal risk.",
557
+ "suggestion": "Clarify the license type by adding a license field to package.json and a LICENSE file.",
642
558
  "title": "Unsafe copyright",
643
559
  "emoji": "⚠️"
644
560
  },
645
561
  "unstableOwnership": {
646
562
  "description": "A new collaborator has begun publishing package versions. Package stability and security risk may be elevated.",
647
- "props": {
648
- "author": "Author"
649
- },
650
563
  "suggestion": "Try to reduce the amount of authors you depend on to reduce the risk to malicious actors gaining access to your supply chain. Packages should remove inactive collaborators with publishing rights from packages on npm.",
651
564
  "title": "Unstable ownership",
652
565
  "emoji": "⚠️"
653
566
  },
654
567
  "unusedDependency": {
655
- "description": "Package has unused dependencies. This package depends on code that it does not use. This can increase the attack surface for malware and slow down installation.",
656
- "props": {
657
- "name": "Name",
658
- "version": "Version"
659
- },
568
+ "description": "Package has unused dependencies. This package depends on code that it does not use. This can increase the attack surface for malware and slow down installation.",
660
569
  "suggestion": "Packages should only specify dependencies that they use directly.",
661
570
  "title": "Unused dependency",
662
571
  "emoji": "⚠️"
663
572
  },
664
573
  "urlStrings": {
665
574
  "description": "Package contains fragments of external URLs or IP addresses, which may indicate that it covertly exfiltrates data.",
666
- "props": {
667
- "urlFragment": "URL Fragment"
668
- },
669
575
  "suggestion": "Avoid using packages that make connections to the network, since this helps to leak data.",
670
576
  "title": "URL strings",
671
577
  "emoji": "⚠️"
672
578
  },
673
579
  "usesEval": {
674
- "description": "Package uses eval() which is a dangerous function. This prevents the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.",
675
- "props": {
676
- "evalType": "Eval type"
677
- },
678
- "suggestion": "Avoid packages that use eval, since this could potentially execute any code.",
580
+ "description": "Package uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.",
581
+ "suggestion": "Avoid packages that use dynamic code execution like eval(), since this could potentially execute any code.",
679
582
  "title": "Uses eval",
680
583
  "emoji": "⚠️"
681
584
  },