@kevinrabun/judges 3.23.9 → 3.23.11
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/CHANGELOG.md +58 -0
- package/dist/api.d.ts +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/ast/structural-parser.js +1 -1
- package/dist/ast/structural-parser.js.map +1 -1
- package/dist/ast/taint-tracker.js +1 -1
- package/dist/ast/taint-tracker.js.map +1 -1
- package/dist/cache.d.ts +25 -3
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +32 -8
- package/dist/cache.js.map +1 -1
- package/dist/commands/auto-detect.js.map +1 -1
- package/dist/commands/benchmark.d.ts +1 -0
- package/dist/commands/benchmark.d.ts.map +1 -1
- package/dist/commands/benchmark.js +171 -3
- package/dist/commands/benchmark.js.map +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/fix.js +1 -1
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/lsp.d.ts.map +1 -1
- package/dist/commands/lsp.js.map +1 -1
- package/dist/commands/review.d.ts +6 -0
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +93 -6
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/tune.js.map +1 -1
- package/dist/dedup.d.ts.map +1 -1
- package/dist/dedup.js +24 -2
- package/dist/dedup.js.map +1 -1
- package/dist/disk-cache.d.ts +25 -5
- package/dist/disk-cache.d.ts.map +1 -1
- package/dist/disk-cache.js +77 -36
- package/dist/disk-cache.js.map +1 -1
- package/dist/errors.d.ts +8 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +11 -4
- package/dist/errors.js.map +1 -1
- package/dist/evaluators/authentication.d.ts.map +1 -1
- package/dist/evaluators/authentication.js +51 -2
- package/dist/evaluators/authentication.js.map +1 -1
- package/dist/evaluators/compliance.js +1 -1
- package/dist/evaluators/compliance.js.map +1 -1
- package/dist/evaluators/concurrency.d.ts.map +1 -1
- package/dist/evaluators/concurrency.js +34 -0
- package/dist/evaluators/concurrency.js.map +1 -1
- package/dist/evaluators/cybersecurity.d.ts.map +1 -1
- package/dist/evaluators/cybersecurity.js +230 -0
- package/dist/evaluators/cybersecurity.js.map +1 -1
- package/dist/evaluators/false-positive-review.d.ts.map +1 -1
- package/dist/evaluators/false-positive-review.js +330 -0
- package/dist/evaluators/false-positive-review.js.map +1 -1
- package/dist/evaluators/framework-safety.js +1 -1
- package/dist/evaluators/framework-safety.js.map +1 -1
- package/dist/evaluators/security.d.ts +13 -0
- package/dist/evaluators/security.d.ts.map +1 -0
- package/dist/evaluators/security.js +527 -0
- package/dist/evaluators/security.js.map +1 -0
- package/dist/evaluators/shared.d.ts +1 -1
- package/dist/evaluators/shared.d.ts.map +1 -1
- package/dist/evaluators/shared.js +73 -3
- package/dist/evaluators/shared.js.map +1 -1
- package/dist/fix-history.d.ts +24 -1
- package/dist/fix-history.d.ts.map +1 -1
- package/dist/fix-history.js +24 -1
- package/dist/fix-history.js.map +1 -1
- package/dist/judges/index.d.ts.map +1 -1
- package/dist/judges/index.js +4 -0
- package/dist/judges/index.js.map +1 -1
- package/dist/judges/security.d.ts +3 -0
- package/dist/judges/security.d.ts.map +1 -0
- package/dist/judges/security.js +28 -0
- package/dist/judges/security.js.map +1 -0
- package/dist/language-patterns.d.ts.map +1 -1
- package/dist/language-patterns.js +8 -3
- package/dist/language-patterns.js.map +1 -1
- package/dist/patches/index.d.ts.map +1 -1
- package/dist/patches/index.js +501 -0
- package/dist/patches/index.js.map +1 -1
- package/dist/tools/deep-review.js +1 -1
- package/dist/tools/deep-review.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -1
- package/server.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-patterns.js","sourceRoot":"","sources":["../src/language-patterns.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"language-patterns.js","sourceRoot":"","sources":["../src/language-patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/patches/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/patches/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AA6yD3C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAyC9E"}
|
package/dist/patches/index.js
CHANGED
|
@@ -1085,6 +1085,405 @@ const PATCH_RULES = [
|
|
|
1085
1085
|
return { oldText: m[0], newText: `${m[0]} /* TODO: add app.use(helmet()) for security headers */` };
|
|
1086
1086
|
},
|
|
1087
1087
|
},
|
|
1088
|
+
// ── Ruby Patches ──
|
|
1089
|
+
// Ruby: system/exec → Shellwords.shellescape
|
|
1090
|
+
{
|
|
1091
|
+
match: /command.*inject|shell.*inject|os.*command|dangerous.*system/i,
|
|
1092
|
+
generate: (line) => {
|
|
1093
|
+
const m = line.match(/\bsystem\s*\(\s*(["'])(.+?)\1\s*\+\s*(\w+)\s*\)/);
|
|
1094
|
+
if (!m)
|
|
1095
|
+
return null;
|
|
1096
|
+
return { oldText: m[0], newText: `system(${m[1]}${m[2]}#{Shellwords.shellescape(${m[3]})}${m[1]})` };
|
|
1097
|
+
},
|
|
1098
|
+
},
|
|
1099
|
+
// Ruby: exec with string interpolation → shellescape
|
|
1100
|
+
{
|
|
1101
|
+
match: /command.*inject|shell.*inject|os.*command/i,
|
|
1102
|
+
generate: (line) => {
|
|
1103
|
+
const m = line.match(/`([^`]*#\{(\w+)\}[^`]*)`/);
|
|
1104
|
+
if (!m)
|
|
1105
|
+
return null;
|
|
1106
|
+
return { oldText: m[0], newText: `Shellwords.shelljoin(["${m[1].replace(/#\{\w+\}/, '", ' + m[2] + ', "')}"])` };
|
|
1107
|
+
},
|
|
1108
|
+
},
|
|
1109
|
+
// Ruby: eval → safer alternative
|
|
1110
|
+
{
|
|
1111
|
+
match: /dangerous.*eval|eval.*usage|code.*inject/i,
|
|
1112
|
+
generate: (line) => {
|
|
1113
|
+
const m = line.match(/\beval\s*\(\s*(\w+)\s*\)/);
|
|
1114
|
+
if (!m)
|
|
1115
|
+
return null;
|
|
1116
|
+
// Only match Ruby-style (no 'new Function' or JS context)
|
|
1117
|
+
if (line.includes("new Function") || line.includes("JSON.parse"))
|
|
1118
|
+
return null;
|
|
1119
|
+
return { oldText: m[0], newText: `JSON.parse(${m[1]}) # TODO: eliminate eval — use safe deserialization` };
|
|
1120
|
+
},
|
|
1121
|
+
},
|
|
1122
|
+
// Ruby: send with user input → allowlist
|
|
1123
|
+
{
|
|
1124
|
+
match: /dynamic.*method|unsafe.*send|method.*inject/i,
|
|
1125
|
+
generate: (line) => {
|
|
1126
|
+
const m = line.match(/(\.send\s*\(\s*)(\w+)\s*\)/);
|
|
1127
|
+
if (!m)
|
|
1128
|
+
return null;
|
|
1129
|
+
return { oldText: m[0], newText: `${m[1]}${m[2]}) # TODO: validate against allowlist before .send` };
|
|
1130
|
+
},
|
|
1131
|
+
},
|
|
1132
|
+
// Ruby: open-uri with user URL → validate
|
|
1133
|
+
{
|
|
1134
|
+
match: /ssrf|open-uri.*untrusted|server.*side.*request/i,
|
|
1135
|
+
generate: (line) => {
|
|
1136
|
+
const m = line.match(/(URI\.open\s*\(\s*)(\w+)\s*\)/);
|
|
1137
|
+
if (!m)
|
|
1138
|
+
return null;
|
|
1139
|
+
return { oldText: m[0], newText: `${m[1]}${m[2]}) # TODO: validate URL against allowlist to prevent SSRF` };
|
|
1140
|
+
},
|
|
1141
|
+
},
|
|
1142
|
+
// Ruby: yaml.load → YAML.safe_load
|
|
1143
|
+
{
|
|
1144
|
+
match: /unsafe.*yaml|yaml.*load|insecure.*yaml|deserialization/i,
|
|
1145
|
+
generate: (line) => {
|
|
1146
|
+
const m = line.match(/YAML\.load\s*\(/);
|
|
1147
|
+
if (!m)
|
|
1148
|
+
return null;
|
|
1149
|
+
return { oldText: m[0], newText: "YAML.safe_load(" };
|
|
1150
|
+
},
|
|
1151
|
+
},
|
|
1152
|
+
// Ruby: Marshal.load → JSON.parse
|
|
1153
|
+
{
|
|
1154
|
+
match: /unsafe.*deserialization|marshal.*untrusted|insecure.*deserialization/i,
|
|
1155
|
+
generate: (line) => {
|
|
1156
|
+
const m = line.match(/Marshal\.load\s*\(/);
|
|
1157
|
+
if (!m)
|
|
1158
|
+
return null;
|
|
1159
|
+
return { oldText: m[0], newText: "JSON.parse( # TODO: replace Marshal with safe serialization" };
|
|
1160
|
+
},
|
|
1161
|
+
},
|
|
1162
|
+
// Ruby: String interpolation in SQL → parameterized
|
|
1163
|
+
{
|
|
1164
|
+
match: /sql.*inject|string.*interpol.*sql|sql.*concat/i,
|
|
1165
|
+
generate: (line) => {
|
|
1166
|
+
const m = line.match(/(\.(?:where|find_by_sql|execute)\s*\(\s*)"([^"]*?)#\{(\w+)\}([^"]*)"/);
|
|
1167
|
+
if (!m)
|
|
1168
|
+
return null;
|
|
1169
|
+
return { oldText: m[0], newText: `${m[1]}"${m[2]}?${m[4]}", ${m[3]}` };
|
|
1170
|
+
},
|
|
1171
|
+
},
|
|
1172
|
+
// Ruby: Digest::MD5 → Digest::SHA256
|
|
1173
|
+
{
|
|
1174
|
+
match: /weak.*hash|insecure.*hash|md5|sha1/i,
|
|
1175
|
+
generate: (line) => {
|
|
1176
|
+
const m = line.match(/Digest::(MD5|SHA1)/);
|
|
1177
|
+
if (!m)
|
|
1178
|
+
return null;
|
|
1179
|
+
return { oldText: m[0], newText: "Digest::SHA256" };
|
|
1180
|
+
},
|
|
1181
|
+
},
|
|
1182
|
+
// Ruby: render inline with user input → sanitize
|
|
1183
|
+
{
|
|
1184
|
+
match: /xss|cross.*site.*script|render.*untrusted/i,
|
|
1185
|
+
generate: (line) => {
|
|
1186
|
+
const m = line.match(/(render\s+inline:\s*)(\w+)/);
|
|
1187
|
+
if (!m)
|
|
1188
|
+
return null;
|
|
1189
|
+
return { oldText: m[0], newText: `${m[1]}ERB::Util.html_escape(${m[2]})` };
|
|
1190
|
+
},
|
|
1191
|
+
},
|
|
1192
|
+
// ── PHP Patches ──
|
|
1193
|
+
// PHP: mysql_query → PDO prepared statement marker
|
|
1194
|
+
{
|
|
1195
|
+
match: /deprecated.*mysql|mysql_query|sql.*inject/i,
|
|
1196
|
+
generate: (line) => {
|
|
1197
|
+
const m = line.match(/mysql_query\s*\(\s*(".*?"|\$\w+)\s*\)/);
|
|
1198
|
+
if (!m)
|
|
1199
|
+
return null;
|
|
1200
|
+
return { oldText: m[0], newText: `$pdo->prepare(${m[1]})->execute() /* TODO: use PDO with bound parameters */` };
|
|
1201
|
+
},
|
|
1202
|
+
},
|
|
1203
|
+
// PHP: eval → safer alternative
|
|
1204
|
+
{
|
|
1205
|
+
match: /dangerous.*eval|eval.*usage|code.*inject/i,
|
|
1206
|
+
generate: (line) => {
|
|
1207
|
+
const m = line.match(/\beval\s*\(\s*(\$\w+)\s*\)/);
|
|
1208
|
+
if (!m)
|
|
1209
|
+
return null;
|
|
1210
|
+
return { oldText: m[0], newText: `json_decode(${m[1]}, true) /* TODO: eliminate eval — use safe parsing */` };
|
|
1211
|
+
},
|
|
1212
|
+
},
|
|
1213
|
+
// PHP: shell_exec/exec → escapeshellarg
|
|
1214
|
+
{
|
|
1215
|
+
match: /command.*inject|shell.*inject|os.*command/i,
|
|
1216
|
+
generate: (line) => {
|
|
1217
|
+
const m = line.match(/((?:shell_exec|exec|system|passthru)\s*\(\s*(?:["'].*?["']\s*\.\s*))(\$\w+)/);
|
|
1218
|
+
if (!m)
|
|
1219
|
+
return null;
|
|
1220
|
+
return { oldText: m[2], newText: `escapeshellarg(${m[2]})` };
|
|
1221
|
+
},
|
|
1222
|
+
},
|
|
1223
|
+
// PHP: md5/sha1 → password_hash for passwords
|
|
1224
|
+
{
|
|
1225
|
+
match: /weak.*hash|password.*hash|insecure.*hash/i,
|
|
1226
|
+
generate: (line) => {
|
|
1227
|
+
const m = line.match(/\bmd5\s*\(\s*(\$\w+)\s*\)/);
|
|
1228
|
+
if (!m)
|
|
1229
|
+
return null;
|
|
1230
|
+
return { oldText: m[0], newText: `password_hash(${m[1]}, PASSWORD_BCRYPT)` };
|
|
1231
|
+
},
|
|
1232
|
+
},
|
|
1233
|
+
// PHP: extract($_POST/GET/REQUEST) → manual assignment
|
|
1234
|
+
{
|
|
1235
|
+
match: /variable.*inject|mass.*assign|extract.*superglobal/i,
|
|
1236
|
+
generate: (line) => {
|
|
1237
|
+
const m = line.match(/extract\s*\(\s*\$_(POST|GET|REQUEST)\s*\)/);
|
|
1238
|
+
if (!m)
|
|
1239
|
+
return null;
|
|
1240
|
+
return { oldText: m[0], newText: `/* TODO: assign specific variables from \$_${m[1]} instead of extract() */` };
|
|
1241
|
+
},
|
|
1242
|
+
},
|
|
1243
|
+
// PHP: htmlspecialchars missing → add
|
|
1244
|
+
{
|
|
1245
|
+
match: /xss|cross.*site.*script|output.*encod|unescaped.*output/i,
|
|
1246
|
+
generate: (line) => {
|
|
1247
|
+
const m = line.match(/(echo\s+)(\$\w+)\s*;/);
|
|
1248
|
+
if (!m)
|
|
1249
|
+
return null;
|
|
1250
|
+
return { oldText: m[0], newText: `${m[1]}htmlspecialchars(${m[2]}, ENT_QUOTES, 'UTF-8');` };
|
|
1251
|
+
},
|
|
1252
|
+
},
|
|
1253
|
+
// PHP: unserialize → json_decode
|
|
1254
|
+
{
|
|
1255
|
+
match: /unsafe.*deserialization|unserialize.*untrusted|insecure.*deserialization/i,
|
|
1256
|
+
generate: (line) => {
|
|
1257
|
+
const m = line.match(/unserialize\s*\(\s*(\$\w+)\s*\)/);
|
|
1258
|
+
if (!m)
|
|
1259
|
+
return null;
|
|
1260
|
+
return { oldText: m[0], newText: `json_decode(${m[1]}, true) /* TODO: replace unserialize with safe format */` };
|
|
1261
|
+
},
|
|
1262
|
+
},
|
|
1263
|
+
// PHP: file_get_contents with user URL → validate
|
|
1264
|
+
{
|
|
1265
|
+
match: /ssrf|server.*side.*request|unvalidated.*url/i,
|
|
1266
|
+
generate: (line) => {
|
|
1267
|
+
const m = line.match(/(file_get_contents\s*\(\s*)(\$\w+)\s*\)/);
|
|
1268
|
+
if (!m)
|
|
1269
|
+
return null;
|
|
1270
|
+
return { oldText: m[0], newText: `${m[1]}${m[2]}) /* TODO: validate URL against allowlist to prevent SSRF */` };
|
|
1271
|
+
},
|
|
1272
|
+
},
|
|
1273
|
+
// PHP: rand() → random_int() (cryptographic)
|
|
1274
|
+
{
|
|
1275
|
+
match: /insecure.*random|weak.*random|predictable.*random/i,
|
|
1276
|
+
generate: (line) => {
|
|
1277
|
+
const m = line.match(/\brand\s*\(\s*(\d+)\s*,\s*(\d+)\s*\)/);
|
|
1278
|
+
if (!m)
|
|
1279
|
+
return null;
|
|
1280
|
+
return { oldText: m[0], newText: `random_int(${m[1]}, ${m[2]})` };
|
|
1281
|
+
},
|
|
1282
|
+
},
|
|
1283
|
+
// ── Kotlin Patches ──
|
|
1284
|
+
// Kotlin: !! (force unwrap) → safe call + default
|
|
1285
|
+
{
|
|
1286
|
+
match: /force.*unwrap|non-null.*assert|!!.*operator|null.*safety/i,
|
|
1287
|
+
generate: (line) => {
|
|
1288
|
+
const m = line.match(/(\w+)!!(\.\w+)/);
|
|
1289
|
+
if (!m)
|
|
1290
|
+
return null;
|
|
1291
|
+
return { oldText: m[0], newText: `${m[1]}?${m[2]} ?: throw IllegalStateException("${m[1]} was null")` };
|
|
1292
|
+
},
|
|
1293
|
+
},
|
|
1294
|
+
// Kotlin: Thread.sleep → delay (coroutines)
|
|
1295
|
+
{
|
|
1296
|
+
match: /thread.*sleep|blocking.*call|blocking.*thread/i,
|
|
1297
|
+
generate: (line) => {
|
|
1298
|
+
const m = line.match(/Thread\.sleep\s*\(\s*(\d+)\s*\)/);
|
|
1299
|
+
if (!m)
|
|
1300
|
+
return null;
|
|
1301
|
+
return { oldText: m[0], newText: `delay(${m[1]}) // TODO: ensure calling function is suspend` };
|
|
1302
|
+
},
|
|
1303
|
+
},
|
|
1304
|
+
// Kotlin: var → val (immutability)
|
|
1305
|
+
{
|
|
1306
|
+
match: /mutable.*variable|var.*instead.*val|prefer.*immutable/i,
|
|
1307
|
+
generate: (line) => {
|
|
1308
|
+
const m = line.match(/\bvar\s+(\w+)\s*[:=]/);
|
|
1309
|
+
if (!m)
|
|
1310
|
+
return null;
|
|
1311
|
+
return { oldText: `var ${m[1]}`, newText: `val ${m[1]}` };
|
|
1312
|
+
},
|
|
1313
|
+
},
|
|
1314
|
+
// Kotlin: catching generic Exception → specific
|
|
1315
|
+
{
|
|
1316
|
+
match: /catch.*generic|broad.*exception|catching.*exception/i,
|
|
1317
|
+
generate: (line) => {
|
|
1318
|
+
const m = line.match(/catch\s*\(\s*(e|ex|err)\s*:\s*Exception\s*\)/);
|
|
1319
|
+
if (!m)
|
|
1320
|
+
return null;
|
|
1321
|
+
return { oldText: m[0], newText: `catch (${m[1]}: Exception) /* TODO: use specific exception type */` };
|
|
1322
|
+
},
|
|
1323
|
+
},
|
|
1324
|
+
// Kotlin: hardcoded URL → BuildConfig
|
|
1325
|
+
{
|
|
1326
|
+
match: /hardcoded.*url|url.*hardcoded|base.*url.*literal/i,
|
|
1327
|
+
generate: (line) => {
|
|
1328
|
+
const m = line.match(/(["'])(https?:\/\/[^"']+)\1/);
|
|
1329
|
+
if (!m)
|
|
1330
|
+
return null;
|
|
1331
|
+
return { oldText: m[0], newText: `BuildConfig.BASE_URL /* TODO: move URL to build config */` };
|
|
1332
|
+
},
|
|
1333
|
+
},
|
|
1334
|
+
// Kotlin: String SQL concatenation → parameterized
|
|
1335
|
+
{
|
|
1336
|
+
match: /sql.*inject|sql.*concat|string.*template.*sql/i,
|
|
1337
|
+
generate: (line) => {
|
|
1338
|
+
const m = line.match(/(rawQuery\s*\(\s*)"([^"]*)\$(\w+)/);
|
|
1339
|
+
if (!m)
|
|
1340
|
+
return null;
|
|
1341
|
+
return { oldText: m[0], newText: `${m[1]}"${m[2]}?", arrayOf(${m[3]}` };
|
|
1342
|
+
},
|
|
1343
|
+
},
|
|
1344
|
+
// ── Swift Patches ──
|
|
1345
|
+
// Swift: force unwrap (!) → optional binding
|
|
1346
|
+
{
|
|
1347
|
+
match: /force.*unwrap|implicit.*unwrap|!.*operator.*crash/i,
|
|
1348
|
+
generate: (line) => {
|
|
1349
|
+
const m = line.match(/(\w+)!\s*\./);
|
|
1350
|
+
if (!m)
|
|
1351
|
+
return null;
|
|
1352
|
+
// Don't match Kotlin !! or negation
|
|
1353
|
+
if (line.includes("!!"))
|
|
1354
|
+
return null;
|
|
1355
|
+
return { oldText: m[0], newText: `${m[1]}?. // TODO: use if-let or guard-let for safe unwrapping` };
|
|
1356
|
+
},
|
|
1357
|
+
},
|
|
1358
|
+
// Swift: try! → do-catch reminder
|
|
1359
|
+
{
|
|
1360
|
+
match: /force.*try|try!.*crash|unhandled.*throw/i,
|
|
1361
|
+
generate: (line) => {
|
|
1362
|
+
const m = line.match(/\btry!\s+/);
|
|
1363
|
+
if (!m)
|
|
1364
|
+
return null;
|
|
1365
|
+
return { oldText: m[0], newText: "try /* TODO: wrap in do-catch */ " };
|
|
1366
|
+
},
|
|
1367
|
+
},
|
|
1368
|
+
// Swift: implicitly unwrapped optional → regular optional
|
|
1369
|
+
{
|
|
1370
|
+
match: /implicit.*unwrap.*optional|iuo.*declaration/i,
|
|
1371
|
+
generate: (line) => {
|
|
1372
|
+
const m = line.match(/(:\s*\w+)!/);
|
|
1373
|
+
if (!m)
|
|
1374
|
+
return null;
|
|
1375
|
+
return { oldText: m[0], newText: `${m[1]}?` };
|
|
1376
|
+
},
|
|
1377
|
+
},
|
|
1378
|
+
// Swift: NSLog → os_log (structured logging)
|
|
1379
|
+
{
|
|
1380
|
+
match: /nslog.*os_log|nslog.*instead|structured.*log/i,
|
|
1381
|
+
generate: (line) => {
|
|
1382
|
+
const m = line.match(/NSLog\s*\(([^)]*)\)/);
|
|
1383
|
+
if (!m)
|
|
1384
|
+
return null;
|
|
1385
|
+
return { oldText: m[0], newText: `os_log(.info, ${m[1]})` };
|
|
1386
|
+
},
|
|
1387
|
+
},
|
|
1388
|
+
// Swift: UserDefaults for sensitive data → Keychain
|
|
1389
|
+
{
|
|
1390
|
+
match: /userdefaults.*sensitive|insecure.*storage|keychain.*instead/i,
|
|
1391
|
+
generate: (line) => {
|
|
1392
|
+
const m = line.match(/(UserDefaults\.standard\.set\s*\([^,]+,\s*forKey:\s*)(["'][^"']*(?:password|token|secret|key)[^"']*["'])\s*\)/i);
|
|
1393
|
+
if (!m)
|
|
1394
|
+
return null;
|
|
1395
|
+
return {
|
|
1396
|
+
oldText: m[0],
|
|
1397
|
+
newText: `KeychainWrapper.standard.set(/* value */, forKey: ${m[2]}) /* TODO: use Keychain for sensitive data */`,
|
|
1398
|
+
};
|
|
1399
|
+
},
|
|
1400
|
+
},
|
|
1401
|
+
// Swift: print() → Logger
|
|
1402
|
+
{
|
|
1403
|
+
match: /print.*instead.*log|print.*production|remove.*print/i,
|
|
1404
|
+
generate: (line) => {
|
|
1405
|
+
const m = line.match(/\bprint\s*\(([^)]*)\)/);
|
|
1406
|
+
if (!m)
|
|
1407
|
+
return null;
|
|
1408
|
+
return { oldText: m[0], newText: `Logger().info(${m[1]})` };
|
|
1409
|
+
},
|
|
1410
|
+
},
|
|
1411
|
+
// ── Additional Cross-Language Patches ──
|
|
1412
|
+
// Terraform: overly broad CIDR → restrict
|
|
1413
|
+
{
|
|
1414
|
+
match: /overly.*broad.*cidr|0\.0\.0\.0\/0|unrestricted.*ingress|open.*to.*world/i,
|
|
1415
|
+
generate: (line) => {
|
|
1416
|
+
const m = line.match(/(["'])0\.0\.0\.0\/0\1/);
|
|
1417
|
+
if (!m)
|
|
1418
|
+
return null;
|
|
1419
|
+
return { oldText: m[0], newText: `${m[1]}10.0.0.0/8${m[1]} /* TODO: restrict to your CIDR range */` };
|
|
1420
|
+
},
|
|
1421
|
+
},
|
|
1422
|
+
// Terraform: public access enabled → private
|
|
1423
|
+
{
|
|
1424
|
+
match: /public.*access.*enabled|publicly.*accessible|public.*bucket/i,
|
|
1425
|
+
generate: (line) => {
|
|
1426
|
+
const m = line.match(/((?:publicly_accessible|public_access|public)\s*=\s*)true/i);
|
|
1427
|
+
if (!m)
|
|
1428
|
+
return null;
|
|
1429
|
+
return { oldText: m[0], newText: `${m[1]}false` };
|
|
1430
|
+
},
|
|
1431
|
+
},
|
|
1432
|
+
// Terraform: encryption disabled → enabled
|
|
1433
|
+
{
|
|
1434
|
+
match: /encryption.*disabled|unencrypted.*storage|encrypt.*at.*rest/i,
|
|
1435
|
+
generate: (line) => {
|
|
1436
|
+
const m = line.match(/((?:encrypted|encryption_enabled|encrypt)\s*=\s*)false/i);
|
|
1437
|
+
if (!m)
|
|
1438
|
+
return null;
|
|
1439
|
+
return { oldText: m[0], newText: `${m[1]}true` };
|
|
1440
|
+
},
|
|
1441
|
+
},
|
|
1442
|
+
// Bicep/ARM: HTTP allowed → HTTPS only
|
|
1443
|
+
{
|
|
1444
|
+
match: /http.*allowed|https.*only|transport.*security/i,
|
|
1445
|
+
generate: (line) => {
|
|
1446
|
+
const m = line.match(/(httpsOnly\s*:\s*)false/);
|
|
1447
|
+
if (!m)
|
|
1448
|
+
return null;
|
|
1449
|
+
return { oldText: m[0], newText: `${m[1]}true` };
|
|
1450
|
+
},
|
|
1451
|
+
},
|
|
1452
|
+
// ── Dockerfile additional patches ──
|
|
1453
|
+
// ADD → COPY (Docker best practice)
|
|
1454
|
+
{
|
|
1455
|
+
match: /add.*instead.*copy|docker.*add|prefer.*copy/i,
|
|
1456
|
+
generate: (line) => {
|
|
1457
|
+
const m = line.match(/^(\s*)ADD\s+(?!https?:)/);
|
|
1458
|
+
if (!m)
|
|
1459
|
+
return null;
|
|
1460
|
+
return { oldText: `${m[1]}ADD `, newText: `${m[1]}COPY ` };
|
|
1461
|
+
},
|
|
1462
|
+
},
|
|
1463
|
+
// Missing HEALTHCHECK
|
|
1464
|
+
{
|
|
1465
|
+
match: /missing.*healthcheck|no.*healthcheck|docker.*health/i,
|
|
1466
|
+
generate: (line) => {
|
|
1467
|
+
const m = line.match(/^(\s*)(CMD\s+.+)$/);
|
|
1468
|
+
if (!m)
|
|
1469
|
+
return null;
|
|
1470
|
+
return {
|
|
1471
|
+
oldText: m[0],
|
|
1472
|
+
newText: `HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost:8080/ || exit 1\n${m[1]}${m[2]}`,
|
|
1473
|
+
};
|
|
1474
|
+
},
|
|
1475
|
+
},
|
|
1476
|
+
// ── GitHub Actions / CI Patches ──
|
|
1477
|
+
// Unpinned action version → pin to SHA
|
|
1478
|
+
{
|
|
1479
|
+
match: /unpinned.*action|action.*version.*pin|uses.*latest/i,
|
|
1480
|
+
generate: (line) => {
|
|
1481
|
+
const m = line.match(/(uses:\s*)(\S+)@(master|main|latest)\b/);
|
|
1482
|
+
if (!m)
|
|
1483
|
+
return null;
|
|
1484
|
+
return { oldText: m[0], newText: `${m[1]}${m[2]}@v4 /* TODO: pin to specific SHA */` };
|
|
1485
|
+
},
|
|
1486
|
+
},
|
|
1088
1487
|
];
|
|
1089
1488
|
const MULTI_LINE_PATCH_RULES = [
|
|
1090
1489
|
// ── Multi-line empty catch block → re-throw with error parameter ──
|
|
@@ -1398,6 +1797,108 @@ const MULTI_LINE_PATCH_RULES = [
|
|
|
1398
1797
|
return { oldText, newText, startLine: findingLine, endLine: findingLine };
|
|
1399
1798
|
},
|
|
1400
1799
|
},
|
|
1800
|
+
// ── Ruby: begin/rescue without specific exception → add specific ──
|
|
1801
|
+
{
|
|
1802
|
+
match: /bare.*rescue|rescue.*generic|rescue.*exception/i,
|
|
1803
|
+
contextLines: 4,
|
|
1804
|
+
generate: (windowLines, windowStart, findingLine) => {
|
|
1805
|
+
const idx = findingLine - windowStart;
|
|
1806
|
+
if (idx < 0 || idx >= windowLines.length)
|
|
1807
|
+
return null;
|
|
1808
|
+
const line = windowLines[idx];
|
|
1809
|
+
const m = line.match(/^(\s*)rescue\s*$/);
|
|
1810
|
+
if (!m)
|
|
1811
|
+
return null;
|
|
1812
|
+
return {
|
|
1813
|
+
oldText: line,
|
|
1814
|
+
newText: `${m[1]}rescue StandardError => e # TODO: use specific exception class`,
|
|
1815
|
+
startLine: findingLine,
|
|
1816
|
+
endLine: findingLine,
|
|
1817
|
+
};
|
|
1818
|
+
},
|
|
1819
|
+
},
|
|
1820
|
+
// ── PHP: missing CSRF token in form → add hidden field ──
|
|
1821
|
+
{
|
|
1822
|
+
match: /csrf.*missing|cross.*site.*request|no.*csrf/i,
|
|
1823
|
+
contextLines: 5,
|
|
1824
|
+
generate: (windowLines, windowStart, findingLine) => {
|
|
1825
|
+
const idx = findingLine - windowStart;
|
|
1826
|
+
if (idx < 0 || idx >= windowLines.length)
|
|
1827
|
+
return null;
|
|
1828
|
+
const line = windowLines[idx];
|
|
1829
|
+
const m = line.match(/^(\s*)(<form\s[^>]*method=["']post["'][^>]*>)/i);
|
|
1830
|
+
if (!m)
|
|
1831
|
+
return null;
|
|
1832
|
+
const [, indent, formTag] = m;
|
|
1833
|
+
return {
|
|
1834
|
+
oldText: line,
|
|
1835
|
+
newText: `${indent}${formTag}\n${indent} <input type="hidden" name="csrf_token" value="<?= htmlspecialchars($csrfToken) ?>" />`,
|
|
1836
|
+
startLine: findingLine,
|
|
1837
|
+
endLine: findingLine,
|
|
1838
|
+
};
|
|
1839
|
+
},
|
|
1840
|
+
},
|
|
1841
|
+
// ── Kotlin: runOnUiThread with long operation → coroutine ──
|
|
1842
|
+
{
|
|
1843
|
+
match: /blocking.*main.*thread|ui.*thread.*block|network.*main/i,
|
|
1844
|
+
contextLines: 5,
|
|
1845
|
+
generate: (windowLines, windowStart, findingLine) => {
|
|
1846
|
+
const idx = findingLine - windowStart;
|
|
1847
|
+
if (idx < 0 || idx >= windowLines.length)
|
|
1848
|
+
return null;
|
|
1849
|
+
const line = windowLines[idx];
|
|
1850
|
+
const m = line.match(/^(\s*)runOnUiThread\s*\{/);
|
|
1851
|
+
if (!m)
|
|
1852
|
+
return null;
|
|
1853
|
+
return {
|
|
1854
|
+
oldText: line,
|
|
1855
|
+
newText: `${m[1]}lifecycleScope.launch(Dispatchers.IO) { // TODO: move I/O-bound work off main thread`,
|
|
1856
|
+
startLine: findingLine,
|
|
1857
|
+
endLine: findingLine,
|
|
1858
|
+
};
|
|
1859
|
+
},
|
|
1860
|
+
},
|
|
1861
|
+
// ── Swift: DispatchQueue.main.sync → async ──
|
|
1862
|
+
{
|
|
1863
|
+
match: /deadlock|main.*thread.*sync|dispatch.*main.*sync/i,
|
|
1864
|
+
contextLines: 3,
|
|
1865
|
+
generate: (windowLines, windowStart, findingLine) => {
|
|
1866
|
+
const idx = findingLine - windowStart;
|
|
1867
|
+
if (idx < 0 || idx >= windowLines.length)
|
|
1868
|
+
return null;
|
|
1869
|
+
const line = windowLines[idx];
|
|
1870
|
+
const m = line.match(/^(\s*)DispatchQueue\.main\.sync\b/);
|
|
1871
|
+
if (!m)
|
|
1872
|
+
return null;
|
|
1873
|
+
return {
|
|
1874
|
+
oldText: "DispatchQueue.main.sync",
|
|
1875
|
+
newText: "DispatchQueue.main.async",
|
|
1876
|
+
startLine: findingLine,
|
|
1877
|
+
endLine: findingLine,
|
|
1878
|
+
};
|
|
1879
|
+
},
|
|
1880
|
+
},
|
|
1881
|
+
// ── Terraform: missing logging/monitoring block ──
|
|
1882
|
+
{
|
|
1883
|
+
match: /missing.*logging|no.*monitoring|audit.*log.*disabled/i,
|
|
1884
|
+
contextLines: 5,
|
|
1885
|
+
generate: (windowLines, windowStart, findingLine) => {
|
|
1886
|
+
const idx = findingLine - windowStart;
|
|
1887
|
+
if (idx < 0 || idx >= windowLines.length)
|
|
1888
|
+
return null;
|
|
1889
|
+
const line = windowLines[idx];
|
|
1890
|
+
const m = line.match(/^(\s*)(resource\s+"[^"]+"\s+"[^"]+"\s*\{)/);
|
|
1891
|
+
if (!m)
|
|
1892
|
+
return null;
|
|
1893
|
+
const [, indent, resourceBlock] = m;
|
|
1894
|
+
return {
|
|
1895
|
+
oldText: line,
|
|
1896
|
+
newText: `${indent}${resourceBlock}\n${indent} # TODO: add logging/monitoring configuration\n${indent} # logging { enabled = true }`,
|
|
1897
|
+
startLine: findingLine,
|
|
1898
|
+
endLine: findingLine,
|
|
1899
|
+
};
|
|
1900
|
+
},
|
|
1901
|
+
},
|
|
1401
1902
|
];
|
|
1402
1903
|
export function enrichWithPatches(findings, code) {
|
|
1403
1904
|
const lines = code.split("\n");
|