@mossbear/eval-core 0.1.0-alpha.70 → 0.1.0-alpha.71

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.
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize-command.js","sourceRoot":"","sources":["../src/sanitize-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sanitize-command.js","sourceRoot":"","sources":["../src/sanitize-command.ts"],"names":[],"mappings":"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"}
@@ -268,4 +268,493 @@ describe('HTTPie authentication evidence', () => {
268
268
  expect(output).toContain('-A bearer');
269
269
  });
270
270
  });
271
+ describe('credential syntax at the command upload boundary', () => {
272
+ it.each([
273
+ "bash -c 'API_TOKEN=x curl -x reader:fixture-value@proxy.test:3128 https://example.test'",
274
+ "bash -c 'password=x; https_proxy=reader:fixture-value@proxy.test:3128 curl https://example.test'",
275
+ "su -c 'API_TOKEN=x curl -x reader:fixture-value@proxy.test:3128 https://example.test'",
276
+ "env 'PASSWORD=fixture value' curl https://example.test",
277
+ "bash -c '{ curl -x reader:fixture-value@proxy.test:3128 https://example.test; }'",
278
+ "echo 'proxy = reader:fixture-value@proxy.test:3128' | curl -K - https://example.test",
279
+ "curl -K <(echo 'proxy = reader:fixture-value@proxy.test:3128') https://example.test",
280
+ "printf '%s\\n' 'proxy=reader:fixture-value@proxy.test:3128' | curl --config - https://example.test",
281
+ ])('redacts assignment-led scripts and inline proxy configuration: %s', (command) => {
282
+ expect(sanitizeCommand(command)).not.toContain('fixture');
283
+ });
284
+ it.each([
285
+ 'echo \'proxy-user = "reader:fixture-password"\' | curl -K - https://example.test',
286
+ 'echo \'user = "reader:fixture-password"\' | curl -K - https://example.test',
287
+ 'echo \'proxy-user = "reader:fixture-password"\' > cfg && curl -K cfg https://example.test',
288
+ 'curl -K <(echo \'user = "reader:fixture-password"\') https://example.test',
289
+ "printf '%s\\n' 'user: reader:fixture-password' | curl -K - https://example.test",
290
+ 'echo \'cookie = "SID=fixture-password"\' | curl -K - https://example.test',
291
+ 'echo \'cert = "client.pem:fixture-password"\' | curl -K - https://example.test',
292
+ "echo 'proxy-cert = client.pem:fixture-password' | curl -K - https://example.test",
293
+ ])('redacts credential fields in inline curl configuration: %s', (command) => {
294
+ const output = sanitizeCommand(command);
295
+ expect(output).not.toContain('fixture');
296
+ expect(output).toContain('[redacted]');
297
+ });
298
+ it.each([
299
+ 'echo \'user = "reader"\' | curl -K - https://example.test',
300
+ 'echo \'cert = "client.pem"\' | curl -K - https://example.test',
301
+ ])('keeps curl configuration without a password: %s', (command) => {
302
+ expect(sanitizeCommand(command)).toBe(command);
303
+ });
304
+ it.each([
305
+ 'sudo -E curl -x reader:fixture-password@proxy.test:3128 https://example.test',
306
+ 'sudo -u deploy curl -x reader:fixture-password@proxy.test:3128 https://example.test',
307
+ 'timeout --preserve-status 10 curl -x reader:fixture-password@proxy.test:3128 https://example.test',
308
+ 'nice -n 10 curl -x reader:fixture-password@proxy.test:3128 https://example.test',
309
+ 'stdbuf -oL curl -x reader:fixture-password@proxy.test:3128 https://example.test',
310
+ 'xargs curl -x reader:fixture-password@proxy.test:3128 https://example.test',
311
+ 'env -S "curl -x reader:fixture-password@proxy.test:3128 https://example.test"',
312
+ "su -c 'curl -x reader:fixture-password@proxy.test:3128 https://example.test'",
313
+ 'sudo -s "curl -x reader:fixture-password@proxy.test:3128 https://example.test"',
314
+ String.raw `env -S "sh -c 'curl -x reader:fixture-password@proxy.test:3128 https://example.test'"`,
315
+ 'bash -c "$(echo curl -x reader:fixture-password@proxy.test:3128 https://example.test)"',
316
+ "bash -c $'curl -x reader:fixture-password@proxy.test:3128 https://example.test'",
317
+ String.raw `bash -c $'true\ncurl -x reader:fixture-password@proxy.test:3128 https://example.test'`,
318
+ String.raw `bash -c $'\x63url -x reader:fixture-password@proxy.test:3128 https://example.test'`,
319
+ String.raw `bash -c $'echo \'ready\'; \x63url -x reader:fixture-password@proxy.test:3128 https://example.test'`,
320
+ ])('redacts wrapper and encoded-script credentials: %s', (command) => {
321
+ const output = sanitizeCommand(command);
322
+ expect(output).not.toContain('fixture-password');
323
+ expect(output).toContain('proxy.test:3128');
324
+ expect(output).toContain('example.test');
325
+ });
326
+ it.each([
327
+ "sh -c 'export https_proxy=reader:fixture-password@proxy.test:3128; curl https://example.test'",
328
+ "sh -c 'cd /tmp; https_proxy=reader:fixture-password@proxy.test:3128 curl https://example.test'",
329
+ "eval 'export https_proxy=reader:fixture-password@proxy.test:3128' ; curl https://example.test",
330
+ "bash -c 'curl -x reader:fixture-password@proxy.test:3128 https://example.test'",
331
+ 'bash -lc "curl -sSx reader:fixture-password@proxy.test:3128 https://example.test"',
332
+ 'sudo bash -c "curl -x reader:fixture-password@proxy.test:3128 https://example.test"',
333
+ String.raw `bash -c 'sh -c "curl -x reader:fixture-password@proxy.test:3128 https://example.test"'`,
334
+ "bash -c 'https_proxy=reader:fixture-password@proxy.test:3128 curl -U reader:fixture-other https://example.test'",
335
+ 'eval curl -x reader:fixture-password@proxy.test:3128 https://example.test',
336
+ ])('redacts credentials inside quoted scripts: %s', (command) => {
337
+ const output = sanitizeCommand(command);
338
+ expect(output).not.toContain('fixture-password');
339
+ expect(output).not.toContain('fixture-other');
340
+ expect(output).toContain('proxy.test:3128');
341
+ expect(output).toContain('example.test');
342
+ });
343
+ it('bounds deeply nested interpreter scripts without retaining credentials', () => {
344
+ let command = 'curl -x reader:fixture-password@proxy.test:3128 https://example.test';
345
+ for (let depth = 0; depth < 12; depth += 1)
346
+ command = `bash -c ${JSON.stringify(command)}`;
347
+ const start = performance.now();
348
+ expect(sanitizeCommand(command)).not.toContain('fixture-password');
349
+ expect(performance.now() - start).toBeLessThan(2000);
350
+ });
351
+ it.each(['--pass ', '--pass=', '--proxy-pass ', '--proxy-pass='])('redacts separate private-key passphrases via %s', (flag) => {
352
+ expect(sanitizeCommand(`curl ${flag}'fixture-secret' https://example.test`)).not.toContain('fixture-secret');
353
+ });
354
+ it.each([
355
+ 'curl reader:fixture-password@internal.test/api',
356
+ 'curl -osx reader:fixture-password@internal.test/api',
357
+ 'curl -- reader:fixture-password@internal.test/api',
358
+ "curl 'reader:fixture-password@internal.test/api'",
359
+ "bash -c 'curl reader:fixture-password@internal.test/api'",
360
+ ])('redacts HTTP-client scheme-less URL credentials: %s', (command) => {
361
+ const output = sanitizeCommand(command);
362
+ expect(output).not.toContain('fixture-password');
363
+ expect(output).toContain('internal.test/api');
364
+ });
365
+ it('preserves benign quoted scripts and unrelated userinfo-shaped arguments', () => {
366
+ for (const command of [
367
+ "bash -c 'sort -u input.txt; curl -sS https://example.test'",
368
+ "docker pull 'image:tag@sha256:abc123'",
369
+ "git clone 'git@github.test:org/repo'",
370
+ ])
371
+ expect(sanitizeCommand(command)).toBe(command);
372
+ });
373
+ it.each([
374
+ ['x', 'reader:fixture-password@proxy.test:3128'],
375
+ ['u', 'reader:fixture-password'],
376
+ ['U', 'reader:fixture-password'],
377
+ ['b', 'session=fixture-cookie'],
378
+ ['E', 'client.pem:fixture-passphrase'],
379
+ ['H', 'X-Api-Key: fixture-header'],
380
+ ['d', '%70assword=fixture-form'],
381
+ ['F', '%70assword=fixture-form'],
382
+ ])('redacts curl clustered argument flag %s', (flag, value) => {
383
+ for (const prefix of ['s', 'sS', 'qkLf']) {
384
+ for (const space of ['', ' ']) {
385
+ const output = sanitizeCommand(`curl -${prefix}${flag}${space}'${value}' https://example.test`);
386
+ expect(output).not.toContain('fixture');
387
+ expect(output).toContain(`-${prefix}${flag}`);
388
+ expect(output).toContain('https://example.test');
389
+ if (flag === 'x')
390
+ expect(output).toContain('proxy.test:3128');
391
+ }
392
+ }
393
+ });
394
+ it('does not interpret an argument-taking flag value as more curl flags', () => {
395
+ const command = "curl -osxreport.txt -sH'Accept: application/json' https://example.test";
396
+ expect(sanitizeCommand(command)).toBe(command);
397
+ const proxy = 'curl -sSxproxy.test:3128 https://example.test';
398
+ expect(sanitizeCommand(proxy)).toBe(proxy);
399
+ });
400
+ it.each(['-U ', '-U', '--proxy-user='])('redacts curl proxy credentials via %s', (flag) => {
401
+ expect(sanitizeCommand(`curl ${flag}'user:fixture proxy password' https://example.test`)).not.toContain('fixture');
402
+ });
403
+ it.each(['--oauth2-bearer ', '--oauth2-bearer='])('redacts curl OAuth bearer credentials via %s', (flag) => {
404
+ expect(sanitizeCommand(`curl ${flag}fixture-bearer https://example.test`)).not.toContain('fixture');
405
+ });
406
+ it.each(['-E ', '-E', '--cert ', '--cert=', '--proxy-cert='])('redacts certificate passphrases via %s', (flag) => {
407
+ expect(sanitizeCommand(`curl ${flag}'client.pem:fixture passphrase' https://example.test`)).not.toContain('fixture');
408
+ });
409
+ it.each(['-H ', '-H', '--header ', '--header=', '--proxy-header='])('redacts custom credential headers via %s', (flag) => {
410
+ expect(sanitizeCommand(`curl ${flag}'X-Api-Key: fixture-header-secret' https://example.test`)).not.toContain('fixture');
411
+ expect(sanitizeCommand(`curl ${flag}'Accept: application/json' https://example.test`)).toContain('Accept: application/json');
412
+ });
413
+ it.each(['-d ', '-d', '--data=', '--data-urlencode ', '-F ', '--form-string='])('redacts credential form bodies via %s', (flag) => {
414
+ expect(sanitizeCommand(`curl ${flag}'password=fixture%20password&name=reader' https://example.test`)).not.toContain('fixture');
415
+ expect(sanitizeCommand(`curl ${flag}'%70assword=fixture-password' https://example.test`)).not.toContain('fixture');
416
+ expect(sanitizeCommand(`curl ${flag}'view=summary' https://example.test`)).toContain('view=summary');
417
+ });
418
+ it.each([
419
+ "'--password'",
420
+ '"--password"',
421
+ String.raw `--pass\word`,
422
+ "'--password=fixture password'",
423
+ ])('redacts shell-encoded credential flags %s', (flag) => {
424
+ const command = flag.includes('=')
425
+ ? `tool ${flag}`
426
+ : `tool ${flag} 'fixture password' --verbose`;
427
+ expect(sanitizeCommand(command)).not.toContain('fixture');
428
+ });
429
+ it('redacts OAuth fragment credentials while retaining the address', () => {
430
+ const output = sanitizeCommand('curl "https://example.test/#access_token=fixture-fragment&view=summary"');
431
+ expect(output).not.toContain('fixture');
432
+ expect(output).toContain('https://example.test/');
433
+ expect(output).toContain('view=summary');
434
+ });
435
+ it.each(['-x ', '-x', '--proxy ', '--proxy=', '--proxy1.0 '])('redacts scheme-less proxy userinfo via %s', (flag) => {
436
+ const output = sanitizeCommand(`curl ${flag}'reader:fixture-password@proxy.test:3128' https://example.test`);
437
+ expect(output).not.toContain('fixture-password');
438
+ expect(output).toContain('proxy.test:3128');
439
+ expect(sanitizeCommand(`curl ${flag}proxy.test:3128 https://example.test`)).toContain('proxy.test:3128');
440
+ expect(sanitizeCommand(`curl ${flag}'http://reader:fixture-password@proxy.test:3128' https://example.test`)).not.toContain('fixture-password');
441
+ });
442
+ describe('proxy environment assignments', () => {
443
+ it.each([
444
+ "env 'https_proxy=reader:fixture-password@proxy.test:3128' curl https://example.test",
445
+ 'env "ALL_PROXY=reader:fixture-password@proxy.test:3128" curl https://example.test',
446
+ String.raw `env https_pr\oxy=reader:fixture-password@proxy.test:3128 curl https://example.test`,
447
+ ])('redacts shell-encoded complete proxy assignments: %s', (command) => {
448
+ const output = sanitizeCommand(command);
449
+ expect(output).not.toContain('fixture-password');
450
+ expect(output).toContain('proxy.test:3128');
451
+ });
452
+ const names = ['https_proxy', 'http_proxy', 'HTTPS_PROXY', 'ALL_PROXY', 'all_proxy'];
453
+ const values = [
454
+ 'reader:fixture-password@proxy.test:3128',
455
+ "'reader:fixture-password@proxy.test:3128'",
456
+ '"reader:fixture-password@proxy.test:3128"',
457
+ "'reader:fixture password@proxy.test:3128'",
458
+ ];
459
+ for (const name of names) {
460
+ it.each(values)(`redacts scheme-less userinfo in ${name}=%s`, (value) => {
461
+ for (const prefix of ['', 'export ', 'sudo -E ', 'env ']) {
462
+ const output = sanitizeCommand(`${prefix}${name}=${value} curl https://example.test`);
463
+ expect(output).not.toContain('fixture');
464
+ expect(output).toContain('reader:');
465
+ expect(output).toContain('proxy.test:3128');
466
+ expect(output).toContain('curl https://example.test');
467
+ }
468
+ });
469
+ }
470
+ it('keeps a proxy value without credentials intact', () => {
471
+ for (const command of [
472
+ 'https_proxy=proxy.test:3128 curl https://example.test',
473
+ "ALL_PROXY='socks5://proxy.test:1080' curl https://example.test",
474
+ 'no_proxy=localhost,127.0.0.1 curl https://example.test',
475
+ ])
476
+ expect(sanitizeCommand(command)).toBe(command);
477
+ });
478
+ it('leaves unrelated scheme-less @ text alone', () => {
479
+ for (const command of [
480
+ 'docker pull nginx:1.25@sha256:0123456789abcdef',
481
+ 'git clone git@github.com:org/repo.git',
482
+ ])
483
+ expect(sanitizeCommand(command)).toBe(command);
484
+ });
485
+ });
486
+ describe('OpenSSL and sshpass credential arguments', () => {
487
+ it.each([
488
+ 'openssl enc -d -aes-256-cbc -pass pass:fixture-password -in f.enc',
489
+ "openssl rsa -passin 'pass:fixture password' -in key.pem",
490
+ 'openssl pkcs12 -passout pass:fixture-password -out key.p12',
491
+ 'openssl enc -aes-256-cbc -k fixture-password',
492
+ 'openssl enc -aes-256-cbc -pass=pass:fixture-password',
493
+ 'openssl enc -aes-256-cbc --pass pass:fixture-password',
494
+ 'openssl enc -aes-256-cbc --pass=pass:fixture-password',
495
+ 'openssl rsa --passin pass:fixture-password -in key.pem',
496
+ 'openssl pkcs12 --passout pass:fixture-password -out key.p12',
497
+ 'openssl enc -aes-256-cbc --k fixture-password',
498
+ 'openssl pkcs12 -password pass:fixture-password',
499
+ "env 'SSHPASS=fixture password' sshpass -e ssh deploy@host",
500
+ "sudo -u root /usr/bin/openssl enc '-pass' pass:fixture-password",
501
+ "bash -c 'openssl enc -pass pass:fixture-password'",
502
+ 'sshpass -p fixture-password ssh deploy@host git pull',
503
+ 'sshpass -pfixture-password ssh deploy@host git pull',
504
+ "sshpass -vp'fixture password' ssh deploy@host",
505
+ 'timeout 10 /usr/bin/sshpass -4vpfixture-password ssh deploy@host',
506
+ String.raw `sshpass -\p $'fixture\x20password' ssh deploy@host`,
507
+ "openssl passwd -1 'fixture-password'",
508
+ 'openssl passwd -6 fixture-password',
509
+ 'openssl passwd -salt pepper fixture-password',
510
+ 'sudo openssl passwd -apr1 -salt x fixture-password fixture-second',
511
+ 'openssl enc -aes-256-cbc -K 00fixture1122 -iv 00 -in f -out g',
512
+ 'openssl enc -aes-256-cbc -K=00fixture1122 -in f -out g',
513
+ ])('redacts direct passwords: %s', (command) => {
514
+ expect(sanitizeCommand(command)).not.toContain('fixture');
515
+ expect(sanitizeCommand(command)).toContain('[redacted]');
516
+ });
517
+ it.each([
518
+ 'openssl enc -pass env:KEY_PASSWORD -in f.enc',
519
+ 'openssl enc --pass env:KEY_PASSWORD -in f.enc',
520
+ 'openssl rsa -passin file:password-source -in key.pem',
521
+ 'openssl pkcs12 -passout fd:3',
522
+ 'openssl enc -pass stdin',
523
+ 'openssl enc -kfile password-source -in f.enc',
524
+ 'sshpass -e ssh deploy@host',
525
+ 'sshpass -f password-source ssh deploy@host',
526
+ 'sshpass -d 3 ssh deploy@host',
527
+ 'printf -p fixture-public',
528
+ 'tool -pass pass:fixture-public',
529
+ 'openssl passwd -stdin',
530
+ 'openssl passwd -in password-source',
531
+ 'openssl x509 -in cert.pem -noout -text',
532
+ ])('preserves nonliteral sources and unrelated arguments: %s', (command) => {
533
+ expect(sanitizeCommand(command)).toBe(command);
534
+ });
535
+ });
536
+ describe('inline curl configuration credentials', () => {
537
+ it.each([
538
+ `echo 'us''er = "reader:fixture-password"' | curl -K - file:///dev/null`,
539
+ String.raw `echo us\er=reader:fixture-password | curl -K - file:///dev/null`,
540
+ String.raw `echo $'u\x73er = "reader:fixture-password"' | curl -K - file:///dev/null`,
541
+ ])('decodes shell-encoded config names: %s', (command) => {
542
+ expect(sanitizeCommand(command)).not.toContain('fixture');
543
+ });
544
+ it.each([
545
+ `printf 'user = "reader:%s"\\n' fixture-password | curl -K - file:///dev/null`,
546
+ `printf 'cookie = "%s"\\n' SID=fixture-password | curl -K - file:///dev/null`,
547
+ `printf '%s = %s\\n' user reader:fixture-password | curl -K - file:///dev/null`,
548
+ ])('redacts printf credential substitutions: %s', (command) => {
549
+ expect(sanitizeCommand(command)).not.toContain('fixture');
550
+ });
551
+ it.each([
552
+ `bash -c 'echo "user = reader:fixture-password"' | curl -K - file:///dev/null`,
553
+ `env -S 'printf "user = reader:fixture-password"' | curl -K - file:///dev/null`,
554
+ ])('redacts wrapped config producers: %s', (command) => {
555
+ expect(sanitizeCommand(command)).not.toContain('fixture');
556
+ });
557
+ it.each([
558
+ `echo 'user "reader:fixture-password"' | curl -K - file:///dev/null`,
559
+ `echo 'user: "reader:fixture-password"' | curl -K - file:///dev/null`,
560
+ `echo '--user = "reader:fixture-password"' | curl -K - file:///dev/null`,
561
+ `echo '-u "reader:fixture-password"' | curl -K - file:///dev/null`,
562
+ ])('redacts alternate curl config separators: %s', (command) => {
563
+ expect(sanitizeCommand(command)).not.toContain('fixture');
564
+ });
565
+ it.each([
566
+ `echo 'proxy-user = "reader:fixture-password"' | curl -K - https://example.test`,
567
+ `echo 'user = "reader:fixture password"' | curl -K - https://example.test`,
568
+ `echo 'proxy-user="reader:fixture-password"' > cfg && curl -K cfg https://example.test`,
569
+ `curl -K <(echo 'user = "reader:fixture-password"') https://example.test`,
570
+ `echo 'cookie = "SID=fixture-password"' | curl -K - https://example.test`,
571
+ `echo 'cert = "client.pem:fixture-password"' | curl -K - https://example.test`,
572
+ `echo 'proxy-cert = "client.pem:fixture-password"' | curl -K - https://example.test`,
573
+ `printf '%s\\n' 'oauth2-bearer = "fixture-password"' | curl -K - https://example.test`,
574
+ `printf '%s\\n' 'pass = "fixture-password"' | curl -K - https://example.test`,
575
+ `echo 'proxy-pass = "fixture-password"' | curl -K - https://example.test`,
576
+ ])('redacts credential field literals: %s', (command) => {
577
+ expect(sanitizeCommand(command)).not.toContain('fixture');
578
+ });
579
+ it('keeps unrelated flags before a config producer', () => {
580
+ expect(sanitizeCommand(`sort -u public-file && echo 'user = reader:fixture-password' | curl -K - file:///dev/null`)).toContain('sort -u public-file');
581
+ });
582
+ it('retains noncredential curl configuration', () => {
583
+ const command = `echo 'proxy = proxy.test:3128' | curl -K - https://example.test`;
584
+ expect(sanitizeCommand(command)).toBe(command);
585
+ });
586
+ });
587
+ describe('OpenSSL positional passwords and raw keys', () => {
588
+ it('redacts a valid raw AES key while retaining the IV', () => {
589
+ const key = '00112233445566778899aabbccddeeff';
590
+ const iv = 'ffeeddccbbaa99887766554433221100';
591
+ const output = sanitizeCommand(`openssl enc -aes-128-cbc -K ${key} -iv ${iv} -in public-file`);
592
+ expect(output).not.toContain(key);
593
+ expect(output).toContain(iv);
594
+ });
595
+ it.each(['curl', 'openssl', 'sshpass'])('redacts a password named %s', (password) => {
596
+ expect(sanitizeCommand(`openssl passwd -1 '${password}'`)).toBe('openssl passwd -1 [redacted]');
597
+ });
598
+ it.each([
599
+ `openssl passwd -1 'fixture-password'`,
600
+ `openssl passwd -6 'fixture password'`,
601
+ `openssl passwd -salt public-salt fixture-password`,
602
+ `openssl passwd -5 fixture-password fixture-other-password`,
603
+ `openssl passwd -- fixture-password`,
604
+ `openssl enc -aes-256-cbc -K fixture-key -in public-file`,
605
+ `openssl enc -aes-256-cbc --K=fixture-key -in public-file`,
606
+ ])('redacts key material: %s', (command) => {
607
+ expect(sanitizeCommand(command)).not.toContain('fixture');
608
+ });
609
+ it.each([
610
+ 'openssl passwd -1 -salt public-salt -in password-source',
611
+ 'openssl passwd -6 -stdin',
612
+ 'openssl passwd -rand entropy-source -writerand entropy-out -stdin',
613
+ ])('preserves password sources and salt: %s', (command) => {
614
+ expect(sanitizeCommand(command)).toBe(command);
615
+ });
616
+ });
617
+ describe('Codex command-redaction findings', () => {
618
+ it.each([
619
+ `printf 'variable = cred=reader:fixture-password\nexpand-user = {{cred}}\nurl = file:///dev/null\n' | curl -K -`,
620
+ `echo 'variable = cred=fixture-password\nexpand-oauth2-bearer = {{cred}}' | curl -K -`,
621
+ `printf '%s\\n' 'variable = cred=fixture-password' 'expand-header = "X-Api-Key: {{cred}}"' | curl -K -`,
622
+ `export CRED=fixture-password; printf 'variable = %%CRED\nexpand-user = {{CRED}}' | curl -K -`,
623
+ ])('redacts expanded credentials in curl config inputs: %s', (command) => {
624
+ expect(sanitizeCommand(command)).not.toContain('fixture');
625
+ });
626
+ it.each([
627
+ "env 'P.W=fixture-password' openssl enc -pass env:P.W",
628
+ "env 'P-W=fixture-password' openssl enc -pass env:P-W",
629
+ "env 'P W=fixture-password' openssl enc -pass 'env:P W'",
630
+ ])('redacts non-shell environment names: %s', (command) => {
631
+ expect(sanitizeCommand(command)).not.toContain('fixture');
632
+ });
633
+ it.each([
634
+ 'openssl s_client -srppass fixture-password -connect example.test:443',
635
+ 'openssl s_client -srppass=fixture-password -connect example.test:443',
636
+ 'openssl cms -pwri_password fixture-password -encrypt -in /dev/null',
637
+ 'openssl dgst -hmac fixture-password /dev/null',
638
+ ])('redacts other OpenSSL password/key flags: %s', (command) => {
639
+ expect(sanitizeCommand(command)).not.toContain('fixture');
640
+ });
641
+ it('redacts CMS key bytes while keeping their public identifier', () => {
642
+ const key = '0'.repeat(32);
643
+ expect(sanitizeCommand(`openssl cms -secretkey ${key} -secretkeyid public-id`)).toBe('openssl cms -secretkey [redacted] -secretkeyid public-id');
644
+ });
645
+ it.each([
646
+ 'curl -u reader:$(printf fixture-password) https://example.test',
647
+ 'sshpass -p$(printf fixture-password) ssh deploy@host',
648
+ 'openssl enc -pass pass:$(printf fixture-password)',
649
+ 'curl -u reader:`printf fixture-password` https://example.test',
650
+ 'sshpass -p`printf fixture-password` ssh deploy@host',
651
+ 'curl -u reader:$(printf "%s" "$(printf fixture-password)") https://example.test',
652
+ "curl -u reader:$(printf ')%s' fixture-password) https://example.test",
653
+ 'curl -u "reader:$(printf fixture-password)" https://example.test',
654
+ "bash -c 'curl -u reader:$(printf fixture-password) https://example.test'",
655
+ 'curl -u reader:$(printf fixture-password',
656
+ ])('redacts command-substitution bodies in credential words: %s', (command) => {
657
+ expect(sanitizeCommand(command)).not.toContain('fixture');
658
+ });
659
+ it.each([
660
+ 'openssl rand -out passwd 16',
661
+ 'openssl x509 -in passwd -noout -text',
662
+ 'openssl cms -secretkeyid public-key-id -help',
663
+ `echo 'variable = host=example.test\nexpand-url = https://{{host}}' | curl -K -`,
664
+ ])('preserves subcommand arguments and public config expansions: %s', (command) => {
665
+ expect(sanitizeCommand(command)).toBe(command);
666
+ });
667
+ it.each([
668
+ 'curl --variable cred=reader:fixture-password --expand-user {{cred}} file:///dev/null',
669
+ 'curl --variable=cred=reader:fixture-password --expand-proxy-user={{cred}} https://example.test',
670
+ "curl --variable 'cred=fixture password' --expand-oauth2-bearer '{{cred:trim}}' https://example.test",
671
+ 'curl --variable cred=fixture-password --expand-header "X-Api-Key: {{cred}}" https://example.test',
672
+ 'curl --variable cred=fixture-password --expand-data "password={{cred}}" https://example.test',
673
+ 'curl --variable cred=fixture-password --expand-url "https://reader:{{cred}}@example.test"',
674
+ 'curl --variable cred=fixture-password --expand-url "https://example.test/#access_token={{cred}}"',
675
+ 'curl --variable cred=fixture-password --expand-variable login=reader:{{cred}} --expand-user {{login}} file:///dev/null',
676
+ 'curl --variable raw=reader:fixture-password@example.test --expand-variable alias={{raw}} --expand-url {{alias}}',
677
+ 'curl --variable raw=reader:fixture-password@example.test --expand-url {{raw}} --variable raw=example.test',
678
+ 'CRED=fixture-password curl --variable %CRED --expand-oauth2-bearer {{CRED}} https://example.test',
679
+ 'curl --variable %CRED=fixture-password --expand-oauth2-bearer {{CRED}} https://example.test',
680
+ 'curl --variable cred[0-99]=fixture-password --expand-oauth2-bearer {{cred}} https://example.test',
681
+ ])('redacts expanded curl credentials at their source: %s', (command) => {
682
+ expect(sanitizeCommand(command)).not.toContain('fixture');
683
+ });
684
+ it.each([
685
+ 'P=fixture-password openssl enc -aes-256-cbc -pass env:P -in /dev/null -out /dev/null',
686
+ "env 'P=fixture password' openssl enc -pass env:P",
687
+ 'P+=fixture-password openssl enc -pass env:P',
688
+ 'printf fixture-password | openssl enc -pass stdin',
689
+ 'printf "%s\\n" fixture-password | openssl enc -pass stdin',
690
+ "printf fixture-password | sh -c 'openssl enc -pass stdin'",
691
+ 'printf fixture-password > pass-source; openssl enc -pass file:pass-source',
692
+ 'openssl enc -pass fd:3 3< <(printf fixture-password)',
693
+ 'openssl enc -pass file:<(printf fixture-password)',
694
+ 'openssl enc -pass stdin <<< fixture-password',
695
+ 'printf fixture-password > pass-source; openssl enc -kfile pass-source',
696
+ 'printf fixture-password | openssl passwd -stdin',
697
+ 'printf fixture-password > pass-source; openssl passwd -in pass-source',
698
+ 'P=$(printf fixture-password) openssl enc -pass env:P',
699
+ ])('redacts literal OpenSSL passphrase producers: %s', (command) => {
700
+ expect(sanitizeCommand(command)).not.toContain('fixture');
701
+ });
702
+ it.each([
703
+ 'HTTPS_PROXY+=reader:fixture-password@proxy.test:3128 curl https://example.test',
704
+ "ALL_PROXY+='reader:fixture password@proxy.test:3128' curl https://example.test",
705
+ ])('redacts appended proxy assignments: %s', (command) => {
706
+ expect(sanitizeCommand(command)).not.toContain('fixture');
707
+ expect(sanitizeCommand(command)).toContain('proxy.test:3128');
708
+ });
709
+ it.each([
710
+ 'openssl passwd -provider default -stdin',
711
+ 'openssl passwd -provider-path /public/providers -provider default -stdin',
712
+ 'openssl passwd -propquery provider=default -stdin',
713
+ 'openssl passwd -provparam public=value -stdin',
714
+ 'echo "user = reader:public-value"; ssh -K host; curl https://example.test',
715
+ 'curl https://example.test; ssh -K host; echo "user = reader:public-value"',
716
+ 'echo "user = reader:public-value"; curl -o -K https://example.test',
717
+ 'curl --variable host=example.test --expand-url "https://{{host}}/public"',
718
+ 'curl --variable name=public --expand-output {{name}} https://example.test',
719
+ 'echo public-value; openssl enc -pass stdin',
720
+ 'echo public-value; openssl enc -pass env:P',
721
+ ])('preserves public option values and unrelated commands: %s', (command) => {
722
+ expect(sanitizeCommand(command)).toBe(command);
723
+ });
724
+ it.each([
725
+ 'TOOL=/usr/bin/openssl curl -u reader:fixture-password https://example.test',
726
+ 'sudo -u openssl curl -u reader:fixture-password https://example.test',
727
+ 'env -u openssl curl -u reader:fixture-password https://example.test',
728
+ '/usr/bin/time -o openssl curl -u reader:fixture-password https://example.test',
729
+ 'xargs -a openssl curl -u reader:fixture-password https://example.test',
730
+ ])('does not select a client from wrapper option values: %s', (command) => {
731
+ expect(sanitizeCommand(command)).not.toContain('fixture');
732
+ });
733
+ it.each([
734
+ 'curl https://example.test/openssl -u reader:fixture-password',
735
+ 'curl -o openssl -u reader:fixture-password https://example.test',
736
+ 'http example.test/sshpass --auth reader:fixture-password',
737
+ 'curl --output sshpass --proxy-user reader:fixture-password https://example.test',
738
+ 'sshpass -p fixture-first curl -u reader:fixture-password https://example.test',
739
+ ])('keeps client identity across argument names: %s', (command) => {
740
+ expect(sanitizeCommand(command)).not.toContain('fixture');
741
+ });
742
+ it.each(['url', 'preproxy', 'socks4', 'socks4a', 'socks5', 'socks5-hostname'])('redacts userinfo in the %s config field and flag', (key) => {
743
+ for (const command of [
744
+ `echo '${key} = reader:fixture-password@proxy.test:3128' | curl -K -`,
745
+ `curl --${key} reader:fixture-password@proxy.test:3128 https://example.test`,
746
+ ]) {
747
+ expect(sanitizeCommand(command)).not.toContain('fixture');
748
+ expect(sanitizeCommand(command)).toContain('proxy.test:3128');
749
+ }
750
+ });
751
+ it.each([
752
+ `echo 'user = reader:fixture-password' | bash -c 'curl -K - https://example.test'`,
753
+ `printf 'cookie = "%s"' SID=fixture-password | env -S 'curl -K - https://example.test'`,
754
+ `echo 'user = reader:fixture-password' | sh -c "bash -c 'curl -K - https://example.test'"`,
755
+ ])('detects nested config consumers from outer producers: %s', (command) => {
756
+ expect(sanitizeCommand(command)).not.toContain('fixture');
757
+ });
758
+ });
759
+ });
271
760
  //# sourceMappingURL=sanitize-command.test.js.map