cyberchef 11.0.0 → 11.1.0

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.
Files changed (63) hide show
  1. package/CHANGELOG.md +144 -0
  2. package/Dockerfile +2 -2
  3. package/Gruntfile.js +10 -5
  4. package/README.md +3 -1
  5. package/SECURITY.md +8 -18
  6. package/package.json +35 -34
  7. package/src/core/config/Categories.json +6 -0
  8. package/src/core/config/OperationConfig.json +140 -16
  9. package/src/core/config/modules/Default.mjs +8 -0
  10. package/src/core/config/modules/PGP.mjs +2 -0
  11. package/src/core/config/scripts/generateOpsIndex.mjs +63 -0
  12. package/src/core/config/scripts/newOperation.mjs +31 -4
  13. package/src/core/operations/AESDecrypt.mjs +61 -16
  14. package/src/core/operations/AESEncrypt.mjs +26 -11
  15. package/src/core/operations/BLAKE3.mjs +13 -7
  16. package/src/core/operations/BSONDeserialise.mjs +2 -2
  17. package/src/core/operations/BSONSerialise.mjs +3 -2
  18. package/src/core/operations/Bcrypt.mjs +1 -1
  19. package/src/core/operations/BcryptCompare.mjs +1 -1
  20. package/src/core/operations/DecodeText.mjs +4 -0
  21. package/src/core/operations/EncodeText.mjs +4 -0
  22. package/src/core/operations/EscapeSmartCharacters.mjs +129 -0
  23. package/src/core/operations/GenerateLoremIpsum.mjs +34 -3
  24. package/src/core/operations/GeneratePGPKeyPair.mjs +8 -7
  25. package/src/core/operations/PGPSign.mjs +83 -0
  26. package/src/core/operations/ParseEthernetFrame.mjs +1 -1
  27. package/src/core/operations/ParseIPv4Header.mjs +1 -1
  28. package/src/core/operations/ParseObjectIDTimestamp.mjs +2 -2
  29. package/src/core/operations/ParseUserAgent.mjs +1 -1
  30. package/src/core/operations/ROR13.mjs +83 -0
  31. package/src/core/operations/RemoveANSIEscapeCodes.mjs +41 -0
  32. package/src/core/operations/SeriesChart.mjs +16 -0
  33. package/src/core/operations/Wrap.mjs +47 -0
  34. package/src/core/operations/index.mjs +10 -0
  35. package/src/node/index.mjs +25 -0
  36. package/src/web/App.mjs +19 -1
  37. package/src/web/HTMLIngredient.mjs +1 -0
  38. package/src/web/html/index.html +3 -3
  39. package/src/web/static/sitemap.mjs +3 -3
  40. package/src/web/waiters/RecipeWaiter.mjs +9 -1
  41. package/tests/browser/02_ops.js +7 -7
  42. package/tests/browser/03_recipe_load.js +48 -0
  43. package/tests/browser/browserUtils.js +6 -3
  44. package/tests/node/index.mjs +1 -0
  45. package/tests/node/tests/PGP.mjs +69 -0
  46. package/tests/node/tests/operations.mjs +41 -2
  47. package/tests/operations/index.mjs +71 -66
  48. package/tests/operations/tests/BLAKE3.mjs +18 -0
  49. package/tests/operations/tests/CharEnc.mjs +26 -0
  50. package/tests/operations/tests/Charts.mjs +11 -0
  51. package/tests/operations/tests/Crypt.mjs +288 -62
  52. package/tests/operations/tests/EscapeSmartCharacters.mjs +132 -0
  53. package/tests/operations/tests/FlaskSession.mjs +11 -8
  54. package/tests/operations/tests/GenerateLoremIpsum.mjs +80 -0
  55. package/tests/operations/tests/IPv6Transition.mjs +4 -4
  56. package/tests/operations/tests/PGP.mjs +178 -154
  57. package/tests/operations/tests/ParseEthernetFrame.mjs +11 -0
  58. package/tests/operations/tests/ParseIPv4Header.mjs +23 -0
  59. package/tests/operations/tests/ParseX509CRL.mjs +16 -16
  60. package/tests/operations/tests/ROR13.mjs +45 -0
  61. package/tests/operations/tests/Register.mjs +3 -1
  62. package/tests/operations/tests/RemoveANSIEscapeCodes.mjs +62 -0
  63. package/tests/operations/tests/Wrap.mjs +44 -0
package/CHANGELOG.md CHANGED
@@ -13,6 +13,75 @@ All major and minor version changes will be documented in this file. Details of
13
13
 
14
14
  ## Details
15
15
 
16
+ ### [11.1.0] - 2026-06-13
17
+ This release includes a security fix ([#2557])
18
+ - Security: Add fix, and tests, for Lorem Ipsum DoS issue [@GCHQDeveloper581] | [#2557]
19
+ - chore (deps): bump the patch-updates group with 4 updates | [#2552]
20
+ - chore (deps): bump the actions-dependencies group with 2 updates | [#2551]
21
+ - chore (deps): bump the docker-dependencies group with 2 updates | [#2550]
22
+ - chore (deps): bump protobufjs from 8.5.0 to 8.6.2 in the minor-updates group | [#2553]
23
+ - Security Policy Update [@C85297] | [#2547]
24
+ - Fix spurious error messages generated during webpack build [@GCHQDeveloper581] | [#2545]
25
+ - chore (deps): bump shell-quote from 1.8.3 to 1.8.4 | [#2543]
26
+ - Implementing ROR13 feature [@Fufu-btw] | [#2539]
27
+ - New operation improvements [@jl5193] [@GCHQDeveloper581] | [#1431]
28
+ - Npm and yarn/major version updates [@GCHQDeveloper581] | [#2527]
29
+ - Update README to reflect AES Decrypt changes [@andreasrtv] | [#2502]
30
+ - feat: add Escape Smart Characters operation [@HarelKatz] | [#2391]
31
+ - feat: Get AES IV from input (QoL) [@andreasrtv] | [#2471]
32
+ - fix: validate text encoding options [@SyedIshmumAhnaf] | [#2497]
33
+ - chore (deps): bump the minor-updates group with 5 updates [@GCHQDeveloper581] | [#2500]
34
+ - chore (deps): bump the patch-updates group with 2 updates | [#2499]
35
+ - chore (deps): bump nginxinc/nginx-unprivileged from `df0e9ed` to `0a1e718` in the docker-dependencies group | [#2498]
36
+ - Add remove ANSI escape codes operation [@Louis-Ladd] [@GCHQDeveloper581] | [#2143]
37
+ - Fix option ingredients being overwriten [@C85297] | [#2341]
38
+ - chore (deps): bump qs and express | [#2478]
39
+ - chore (deps): bump tmp from 0.2.5 to 0.2.7 | [#2479]
40
+ - chore (deps): bump the patch-updates group across 1 directory with 6 updates | [#2463]
41
+ - chore (deps): bump the docker-dependencies group across 1 directory with 2 updates | [#2468]
42
+ - chore (deps): bump terser from 5.46.2 to 5.48.0 | [#2385]
43
+ - Make dependabot quieter [@GCHQDeveloper581] | [#2467]
44
+ - update sitemap [@Blank0120] | [#2443]
45
+ - Bump webpack-dev-server to 5.2.4 [@GCHQDeveloper581] | [#2417]
46
+ - Fix pgp tests [@GCHQDeveloper581] [@C85297] | [#2461]
47
+ - chore (deps): bump the patch-updates group across 1 directory with 4 updates | [#2438]
48
+ - chore (deps): bump docker/setup-buildx-action from 4.0.0 to 4.1.0 | [#2439]
49
+ - chore (deps): bump docker/login-action from 4.1.0 to 4.2.0 | [#2441]
50
+ - chore (deps): bump docker/metadata-action from 6.0.0 to 6.1.0 | [#2442]
51
+ - update bson [@Blank0120] [@GCHQDeveloper581] | [#2425]
52
+ - chore (deps): bump webpack from 5.106.2 to 5.107.1 | [#2428]
53
+ - chore (deps): bump protobufjs from 7.5.8 to 7.6.0 | [#2429]
54
+ - chore (deps): bump sql-formatter from 15.7.4 to 15.8.0 | [#2430]
55
+ - chore (deps): bump docker/build-push-action from 7.1.0 to 7.2.0 | [#2431]
56
+ - Fix flaky `npm run testui` [@lzandman] | [#2412]
57
+ - Include git ref in website download zip name [@C85297] | [#2339]
58
+ - Bump nginxinc/nginx-unprivileged from `808f784` to `b9f7ba1` | [#2389]
59
+ - Series Chart HTML Formatting fix [@C85297] | [#2403]
60
+ - Parse Ethernet Frame HTML formatting fix [@C85297] | [#2402]
61
+ - Parse IPv4 Header HTML formatting fix [@C85297] | [#2401]
62
+ - Update chromedriver, and install corresponding chrome in workflows (fixes build) [@GCHQDeveloper581] | [#2387]
63
+ - chore (deps): bump @codemirror/view from 6.41.1 to 6.43.0 | [#2384]
64
+ - chore (deps): bump globals from 17.5.0 to 17.6.0 | [#2386]
65
+ - chore (deps): bump the patch-updates group across 1 directory with 3 updates | [#2388]
66
+ - [StepSecurity] Apply security best practices [@GCHQDeveloper581] StepSecurity Bot <bot@stepsecurity.io> | [#2378]
67
+ - Build docker container for arm v7 as well [@GCHQDeveloper581] | [#2379]
68
+ - chore (deps): bump fast-uri from 3.1.0 to 3.1.2 | [#2372]
69
+ - update bcryptjs [@C85297] [@GCHQDeveloper581] | [#2368]
70
+ - chore (deps): bump picomatch from 2.3.1 to 2.3.2 | [#2370]
71
+ - chore (deps): bump ip-address from 10.1.0 to 10.2.0 | [#2371]
72
+ - chore (deps): bump axios from 1.15.0 to 1.16.0 | [#2369]
73
+ - feat(operation-wrap): add new Wrap operation to format text at specified line width [@0xff1ce] | [#1882]
74
+ - chore (deps): bump the patch-updates group across 1 directory with 5 updates | [#2354]
75
+ - chore (deps): bump docker/login-action from 3 to 4 | [#2363]
76
+ - chore (deps): bump docker/setup-buildx-action from 3 to 4 | [#2364]
77
+ - chore (deps): bump crazy-max/ghaction-github-pages from 3 to 5 | [#2365]
78
+ - chore (deps): bump docker/metadata-action from 4 to 6 | [#2366]
79
+ - chore (deps): bump docker/setup-qemu-action from 3 to 4 | [#2367]
80
+ - Update dependabot for Node 24. [@GCHQDeveloper581] | [#2361]
81
+ - chore (deps): bump uuid from 13.0.0 to 14.0.0 | [#2332]
82
+ - chore (deps): bump webpack-bundle-analyzer from 5.2.0 to 5.3.0 | [#2353]
83
+ - Fix all zeros after 16384 bytes with Blake3 [@zachbowden] [@GCHQDeveloper581] | [#2351]
84
+
16
85
  ## [11.0.0] - 2026-04-28
17
86
  - Revert sitemap to v8.0.X to fix build/deploy on master [@GCHQDeveloper581] | [#2348]
18
87
  - Node version update from 22 to 24 [@lzandman] [@GCHQDeveloper581] | [#2347]
@@ -638,6 +707,7 @@ Breaking changes:
638
707
  ## [4.0.0] - 2016-11-28
639
708
  - Initial open source commit [@n1474335] | [b1d73a72](https://github.com/gchq/CyberChef/commit/b1d73a725dc7ab9fb7eb789296efd2b7e4b08306)
640
709
 
710
+ [11.1.0]: https://github.com/gchq/CyberChef/releases/tag/v11.1.0
641
711
  [11.0.0]: https://github.com/gchq/CyberChef/releases/tag/v11.0.0
642
712
  [10.24.0]: https://github.com/gchq/CyberChef/releases/tag/v10.24.0
643
713
  [10.23.0]: https://github.com/gchq/CyberChef/releases/tag/v10.23.0
@@ -923,6 +993,14 @@ Breaking changes:
923
993
  [@hsolberg]: https://github.com/hsolberg
924
994
  [@lzandman]: https://github.com/lzandman
925
995
  [@engin0223]: https://github.com/engin0223
996
+ [@Fufu-btw]: https://github.com/Fufu-btw
997
+ [@jl5193]: https://github.com/jl5193
998
+ [@andreasrtv]: https://github.com/andreasrtv
999
+ [@HarelKatz]: https://github.com/HarelKatz
1000
+ [@SyedIshmumAhnaf]: https://github.com/SyedIshmumAhnaf
1001
+ [@Louis-Ladd]: https://github.com/Louis-Ladd
1002
+ [@Blank0120]: https://github.com/Blank0120
1003
+ [@zachbowden]: https://github.com/zachbowden
926
1004
 
927
1005
 
928
1006
  [8ad18b]: https://github.com/gchq/CyberChef/commit/8ad18bc7db6d9ff184ba3518686293a7685bf7b7
@@ -1220,4 +1298,70 @@ Breaking changes:
1220
1298
  [#2273]: https://github.com/gchq/CyberChef/pull/2273
1221
1299
  [#2342]: https://github.com/gchq/CyberChef/pull/2342
1222
1300
  [#1922]: https://github.com/gchq/CyberChef/pull/1922
1301
+ [#2557]: https://github.com/gchq/CyberChef/pull/2557
1302
+ [#2552]: https://github.com/gchq/CyberChef/pull/2552
1303
+ [#2551]: https://github.com/gchq/CyberChef/pull/2551
1304
+ [#2550]: https://github.com/gchq/CyberChef/pull/2550
1305
+ [#2553]: https://github.com/gchq/CyberChef/pull/2553
1306
+ [#2547]: https://github.com/gchq/CyberChef/pull/2547
1307
+ [#2545]: https://github.com/gchq/CyberChef/pull/2545
1308
+ [#2543]: https://github.com/gchq/CyberChef/pull/2543
1309
+ [#2539]: https://github.com/gchq/CyberChef/pull/2539
1310
+ [#1431]: https://github.com/gchq/CyberChef/pull/1431
1311
+ [#2527]: https://github.com/gchq/CyberChef/pull/2527
1312
+ [#2502]: https://github.com/gchq/CyberChef/pull/2502
1313
+ [#2391]: https://github.com/gchq/CyberChef/pull/2391
1314
+ [#2471]: https://github.com/gchq/CyberChef/pull/2471
1315
+ [#2497]: https://github.com/gchq/CyberChef/pull/2497
1316
+ [#2500]: https://github.com/gchq/CyberChef/pull/2500
1317
+ [#2499]: https://github.com/gchq/CyberChef/pull/2499
1318
+ [#2498]: https://github.com/gchq/CyberChef/pull/2498
1319
+ [#2143]: https://github.com/gchq/CyberChef/pull/2143
1320
+ [#2341]: https://github.com/gchq/CyberChef/pull/2341
1321
+ [#2478]: https://github.com/gchq/CyberChef/pull/2478
1322
+ [#2479]: https://github.com/gchq/CyberChef/pull/2479
1323
+ [#2463]: https://github.com/gchq/CyberChef/pull/2463
1324
+ [#2468]: https://github.com/gchq/CyberChef/pull/2468
1325
+ [#2385]: https://github.com/gchq/CyberChef/pull/2385
1326
+ [#2467]: https://github.com/gchq/CyberChef/pull/2467
1327
+ [#2443]: https://github.com/gchq/CyberChef/pull/2443
1328
+ [#2417]: https://github.com/gchq/CyberChef/pull/2417
1329
+ [#2461]: https://github.com/gchq/CyberChef/pull/2461
1330
+ [#2438]: https://github.com/gchq/CyberChef/pull/2438
1331
+ [#2439]: https://github.com/gchq/CyberChef/pull/2439
1332
+ [#2441]: https://github.com/gchq/CyberChef/pull/2441
1333
+ [#2442]: https://github.com/gchq/CyberChef/pull/2442
1334
+ [#2425]: https://github.com/gchq/CyberChef/pull/2425
1335
+ [#2428]: https://github.com/gchq/CyberChef/pull/2428
1336
+ [#2429]: https://github.com/gchq/CyberChef/pull/2429
1337
+ [#2430]: https://github.com/gchq/CyberChef/pull/2430
1338
+ [#2431]: https://github.com/gchq/CyberChef/pull/2431
1339
+ [#2412]: https://github.com/gchq/CyberChef/pull/2412
1340
+ [#2339]: https://github.com/gchq/CyberChef/pull/2339
1341
+ [#2389]: https://github.com/gchq/CyberChef/pull/2389
1342
+ [#2403]: https://github.com/gchq/CyberChef/pull/2403
1343
+ [#2402]: https://github.com/gchq/CyberChef/pull/2402
1344
+ [#2401]: https://github.com/gchq/CyberChef/pull/2401
1345
+ [#2387]: https://github.com/gchq/CyberChef/pull/2387
1346
+ [#2384]: https://github.com/gchq/CyberChef/pull/2384
1347
+ [#2386]: https://github.com/gchq/CyberChef/pull/2386
1348
+ [#2388]: https://github.com/gchq/CyberChef/pull/2388
1349
+ [#2378]: https://github.com/gchq/CyberChef/pull/2378
1350
+ [#2379]: https://github.com/gchq/CyberChef/pull/2379
1351
+ [#2372]: https://github.com/gchq/CyberChef/pull/2372
1352
+ [#2368]: https://github.com/gchq/CyberChef/pull/2368
1353
+ [#2370]: https://github.com/gchq/CyberChef/pull/2370
1354
+ [#2371]: https://github.com/gchq/CyberChef/pull/2371
1355
+ [#2369]: https://github.com/gchq/CyberChef/pull/2369
1356
+ [#1882]: https://github.com/gchq/CyberChef/pull/1882
1357
+ [#2354]: https://github.com/gchq/CyberChef/pull/2354
1358
+ [#2363]: https://github.com/gchq/CyberChef/pull/2363
1359
+ [#2364]: https://github.com/gchq/CyberChef/pull/2364
1360
+ [#2365]: https://github.com/gchq/CyberChef/pull/2365
1361
+ [#2366]: https://github.com/gchq/CyberChef/pull/2366
1362
+ [#2367]: https://github.com/gchq/CyberChef/pull/2367
1363
+ [#2361]: https://github.com/gchq/CyberChef/pull/2361
1364
+ [#2332]: https://github.com/gchq/CyberChef/pull/2332
1365
+ [#2353]: https://github.com/gchq/CyberChef/pull/2353
1366
+ [#2351]: https://github.com/gchq/CyberChef/pull/2351
1223
1367
 
package/Dockerfile CHANGED
@@ -4,7 +4,7 @@
4
4
  # Modifier --platform=$BUILDPLATFORM limits the platform to "BUILDPLATFORM" during buildx multi-platform builds
5
5
  # This is because npm "chromedriver" package is not compatiable with all platforms
6
6
  # For more info see: https://docs.docker.com/build/building/multi-platform/#cross-compilation
7
- FROM --platform=$BUILDPLATFORM node:24-alpine AS builder
7
+ FROM --platform=$BUILDPLATFORM node:24-alpine@sha256:fb71d01345f11b708a3553c66e7c74074f2d506400ea81973343d915cb64eef0 AS builder
8
8
 
9
9
  WORKDIR /app
10
10
 
@@ -27,7 +27,7 @@ RUN npm run build
27
27
  #########################################
28
28
  # Package static build files into nginx #
29
29
  #########################################
30
- FROM nginxinc/nginx-unprivileged:stable-alpine AS cyberchef
30
+ FROM nginxinc/nginx-unprivileged:stable-alpine@sha256:37f356a5eba5d187365b4f59cd6cc29f1f922ad18146d554b576a80983377e6a AS cyberchef
31
31
 
32
32
  LABEL maintainer="GCHQ <oss@gchq.gov.uk>"
33
33
 
package/Gruntfile.js CHANGED
@@ -89,6 +89,8 @@ module.exports = function (grunt) {
89
89
  const compileYear = grunt.template.today("UTC:yyyy"),
90
90
  compileTime = grunt.template.today("UTC:dd/mm/yyyy HH:MM:ss") + " UTC",
91
91
  pkg = grunt.file.readJSON("package.json"),
92
+ version = process.env.GITHUB_SHA || `v${pkg.version}`,
93
+ downloadZipFilename = `CyberChef_${version}.zip`,
92
94
  webpackConfig = require("./webpack.config.js"),
93
95
  BUILD_CONSTANTS = {
94
96
  COMPILE_YEAR: JSON.stringify(compileYear),
@@ -129,7 +131,9 @@ module.exports = function (grunt) {
129
131
  chunks: ["main"],
130
132
  compileYear: compileYear,
131
133
  compileTime: compileTime,
132
- version: pkg.version,
134
+ version: version,
135
+ latestReleaseVersion: pkg.version,
136
+ downloadZipFilename: downloadZipFilename,
133
137
  minify: {
134
138
  removeComments: true,
135
139
  collapseWhitespace: true,
@@ -140,7 +144,8 @@ module.exports = function (grunt) {
140
144
  new BundleAnalyzerPlugin({
141
145
  analyzerMode: "static",
142
146
  reportFilename: "BundleAnalyzerReport.html",
143
- openAnalyzer: false
147
+ openAnalyzer: false,
148
+ excludeAssets: /.*Worker.js/
144
149
  }),
145
150
  ]
146
151
  };
@@ -245,7 +250,7 @@ module.exports = function (grunt) {
245
250
  "!build/prod/index.html",
246
251
  "!build/prod/BundleAnalyzerReport.html",
247
252
  ],
248
- dest: `build/prod/CyberChef_v${pkg.version}.zip`
253
+ dest: `build/prod/${downloadZipFilename}`
249
254
  }
250
255
  },
251
256
  connect: {
@@ -333,12 +338,12 @@ module.exports = function (grunt) {
333
338
  switch (process.platform) {
334
339
  case "darwin":
335
340
  return chainCommands([
336
- `shasum -a 256 build/prod/CyberChef_v${pkg.version}.zip | awk '{print $1;}' > build/prod/sha256digest.txt`,
341
+ `shasum -a 256 build/prod/${downloadZipFilename} | awk '{print $1;}' > build/prod/sha256digest.txt`,
337
342
  `sed -i '' -e "s/DOWNLOAD_HASH_PLACEHOLDER/$(cat build/prod/sha256digest.txt)/" build/prod/index.html`
338
343
  ]);
339
344
  default:
340
345
  return chainCommands([
341
- `sha256sum build/prod/CyberChef_v${pkg.version}.zip | awk '{print $1;}' > build/prod/sha256digest.txt`,
346
+ `sha256sum build/prod/${downloadZipFilename} | awk '{print $1;}' > build/prod/sha256digest.txt`,
342
347
  `sed -i -e "s/DOWNLOAD_HASH_PLACEHOLDER/$(cat build/prod/sha256digest.txt)/" build/prod/index.html`
343
348
  ]);
344
349
  }
package/README.md CHANGED
@@ -72,6 +72,7 @@ You can use as many operations as you like in simple or complex ways. Some examp
72
72
  - [Carry out different operations on data of different types][8]
73
73
  - [Use parts of the input as arguments to operations][9]
74
74
  - [Perform AES decryption, extracting the IV from the beginning of the cipher stream][10]
75
+ - [A simpler way to perform the same AES Decryption][13]
75
76
  - [Automagically detect several layers of nested encoding][12]
76
77
 
77
78
 
@@ -147,6 +148,7 @@ CyberChef is released under the [Apache 2.0 Licence](https://www.apache.org/lice
147
148
  [7]: https://gchq.github.io/CyberChef/#recipe=Fork('%5C%5Cn','%5C%5Cn',false)From_UNIX_Timestamp('Seconds%20(s)')&input=OTc4MzQ2ODAwCjEwMTI2NTEyMDAKMTA0NjY5NjQwMAoxMDgxMDg3MjAwCjExMTUzMDUyMDAKMTE0OTYwOTYwMA
148
149
  [8]: https://gchq.github.io/CyberChef/#recipe=Fork('%5C%5Cn','%5C%5Cn',false)Conditional_Jump('1',false,'base64',10)To_Hex('Space')Return()Label('base64')To_Base64('A-Za-z0-9%2B/%3D')&input=U29tZSBkYXRhIHdpdGggYSAxIGluIGl0ClNvbWUgZGF0YSB3aXRoIGEgMiBpbiBpdA
149
150
  [9]: https://gchq.github.io/CyberChef/#recipe=Register('key%3D(%5B%5C%5Cda-f%5D*)',true,false)Find_/_Replace(%7B'option':'Regex','string':'.*data%3D(.*)'%7D,'$1',true,false,true)RC4(%7B'option':'Hex','string':'$R0'%7D,'Hex','Latin1')&input=aHR0cDovL21hbHdhcmV6LmJpei9iZWFjb24ucGhwP2tleT0wZTkzMmE1YyZkYXRhPThkYjdkNWViZTM4NjYzYTU0ZWNiYjMzNGUzZGIxMQ
150
- [10]: https://gchq.github.io/CyberChef/#recipe=Register('(.%7B32%7D)',true,false)Drop_bytes(0,32,false)AES_Decrypt(%7B'option':'Hex','string':'1748e7179bd56570d51fa4ba287cc3e5'%7D,%7B'option':'Hex','string':'$R0'%7D,'CTR','Hex','Raw',%7B'option':'Hex','string':''%7D)&input=NTFlMjAxZDQ2MzY5OGVmNWY3MTdmNzFmNWI0NzEyYWYyMGJlNjc0YjNiZmY1M2QzODU0NjM5NmVlNjFkYWFjNDkwOGUzMTljYTNmY2Y3MDg5YmZiNmIzOGVhOTllNzgxZDI2ZTU3N2JhOWRkNmYzMTFhMzk0MjBiODk3OGU5MzAxNGIwNDJkNDQ3MjZjYWVkZjU0MzZlYWY2NTI0MjljMGRmOTRiNTIxNjc2YzdjMmNlODEyMDk3YzI3NzI3M2M3YzcyY2Q4OWFlYzhkOWZiNGEyNzU4NmNjZjZhYTBhZWUyMjRjMzRiYTNiZmRmN2FlYjFkZGQ0Nzc2MjJiOTFlNzJjOWU3MDlhYjYwZjhkYWY3MzFlYzBjYzg1Y2UwZjc0NmZmMTU1NGE1YTNlYzI5MWNhNDBmOWU2MjlhODcyNTkyZDk4OGZkZDgzNDUzNGFiYTc5YzFhZDE2NzY3NjlhN2MwMTBiZjA0NzM5ZWNkYjY1ZDk1MzAyMzcxZDYyOWQ5ZTM3ZTdiNGEzNjFkYTQ2OGYxZWQ1MzU4OTIyZDJlYTc1MmRkMTFjMzY2ZjMwMTdiMTRhYTAxMWQyYWYwM2M0NGY5NTU3OTA5OGExNWUzY2Y5YjQ0ODZmOGZmZTljMjM5ZjM0ZGU3MTUxZjZjYTY1MDBmZTRiODUwYzNmMWMwMmU4MDFjYWYzYTI0NDY0NjE0ZTQyODAxNjE1YjhmZmFhMDdhYzgyNTE0OTNmZmRhN2RlNWRkZjMzNjg4ODBjMmI5NWIwMzBmNDFmOGYxNTA2NmFkZDA3MWE2NmNmNjBlNWY0NmYzYTIzMGQzOTdiNjUyOTYzYTIxYTUzZg
151
+ [10]: https://gchq.github.io/CyberChef/#recipe=Register('(.%7B32%7D)',true,false,false)Drop_bytes(0,32,false)AES_Decrypt(%7B'option':'Hex','string':'1748e7179bd56570d51fa4ba287cc3e5'%7D,%7B'option':'Hex','string':'$R0'%7D,16,'CTR','Hex','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D,'Off')&input=NTFlMjAxZDQ2MzY5OGVmNWY3MTdmNzFmNWI0NzEyYWYyMGJlNjc0YjNiZmY1M2QzODU0NjM5NmVlNjFkYWFjNDkwOGUzMTljYTNmY2Y3MDg5YmZiNmIzOGVhOTllNzgxZDI2ZTU3N2JhOWRkNmYzMTFhMzk0MjBiODk3OGU5MzAxNGIwNDJkNDQ3MjZjYWVkZjU0MzZlYWY2NTI0MjljMGRmOTRiNTIxNjc2YzdjMmNlODEyMDk3YzI3NzI3M2M3YzcyY2Q4OWFlYzhkOWZiNGEyNzU4NmNjZjZhYTBhZWUyMjRjMzRiYTNiZmRmN2FlYjFkZGQ0Nzc2MjJiOTFlNzJjOWU3MDlhYjYwZjhkYWY3MzFlYzBjYzg1Y2UwZjc0NmZmMTU1NGE1YTNlYzI5MWNhNDBmOWU2MjlhODcyNTkyZDk4OGZkZDgzNDUzNGFiYTc5YzFhZDE2NzY3NjlhN2MwMTBiZjA0NzM5ZWNkYjY1ZDk1MzAyMzcxZDYyOWQ5ZTM3ZTdiNGEzNjFkYTQ2OGYxZWQ1MzU4OTIyZDJlYTc1MmRkMTFjMzY2ZjMwMTdiMTRhYTAxMWQyYWYwM2M0NGY5NTU3OTA5OGExNWUzY2Y5YjQ0ODZmOGZmZTljMjM5ZjM0ZGU3MTUxZjZjYTY1MDBmZTRiODUwYzNmMWMwMmU4MDFjYWYzYTI0NDY0NjE0ZTQyODAxNjE1YjhmZmFhMDdhYzgyNTE0OTNmZmRhN2RlNWRkZjMzNjg4ODBjMmI5NWIwMzBmNDFmOGYxNTA2NmFkZDA3MWE2NmNmNjBlNWY0NmYzYTIzMGQzOTdiNjUyOTYzYTIxYTUzZg
151
152
  [11]: https://gchq.github.io/CyberChef/#recipe=XOR(%7B'option':'Hex','string':'3a'%7D,'Standard',false)To_Hexdump(16,false,false)&input=VGhlIGFuc3dlciB0byB0aGUgdWx0aW1hdGUgcXVlc3Rpb24gb2YgbGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgZXZlcnl0aGluZyBpcyA0Mi4
152
153
  [12]: https://gchq.github.io/CyberChef/#recipe=Magic(3,false,false)&input=V1VhZ3dzaWFlNm1QOGdOdENDTFVGcENwQ0IyNlJtQkRvREQ4UGFjZEFtekF6QlZqa0syUXN0RlhhS2hwQzZpVVM3UkhxWHJKdEZpc29SU2dvSjR3aGptMWFybTg2NHFhTnE0UmNmVW1MSHJjc0FhWmM1VFhDWWlmTmRnUzgzZ0RlZWpHWDQ2Z2FpTXl1QlY2RXNrSHQxc2NnSjg4eDJ0TlNvdFFEd2JHWTFtbUNvYjJBUkdGdkNLWU5xaU45aXBNcTFaVTFtZ2tkYk51R2NiNzZhUnRZV2hDR1VjOGc5M1VKdWRoYjhodHNoZVpud1RwZ3FoeDgzU1ZKU1pYTVhVakpUMnptcEM3dVhXdHVtcW9rYmRTaTg4WXRrV0RBYzFUb291aDJvSDRENGRkbU5LSldVRHBNd21uZ1VtSzE0eHdtb21jY1BRRTloTTE3MkFQblNxd3hkS1ExNzJSa2NBc3lzbm1qNWdHdFJtVk5OaDJzMzU5d3I2bVMyUVJQ
154
+ [13]: https://gchq.github.io/CyberChef/#recipe=AES_Decrypt(%7B'option':'Hex','string':'1748e7179bd56570d51fa4ba287cc3e5'%7D,%7B'option':'Hex','string':'$R0'%7D,16,'CTR','Hex','Raw',%7B'option':'Hex','string':''%7D,%7B'option':'Hex','string':''%7D,'From%20start')&input=NTFlMjAxZDQ2MzY5OGVmNWY3MTdmNzFmNWI0NzEyYWYyMGJlNjc0YjNiZmY1M2QzODU0NjM5NmVlNjFkYWFjNDkwOGUzMTljYTNmY2Y3MDg5YmZiNmIzOGVhOTllNzgxZDI2ZTU3N2JhOWRkNmYzMTFhMzk0MjBiODk3OGU5MzAxNGIwNDJkNDQ3MjZjYWVkZjU0MzZlYWY2NTI0MjljMGRmOTRiNTIxNjc2YzdjMmNlODEyMDk3YzI3NzI3M2M3YzcyY2Q4OWFlYzhkOWZiNGEyNzU4NmNjZjZhYTBhZWUyMjRjMzRiYTNiZmRmN2FlYjFkZGQ0Nzc2MjJiOTFlNzJjOWU3MDlhYjYwZjhkYWY3MzFlYzBjYzg1Y2UwZjc0NmZmMTU1NGE1YTNlYzI5MWNhNDBmOWU2MjlhODcyNTkyZDk4OGZkZDgzNDUzNGFiYTc5YzFhZDE2NzY3NjlhN2MwMTBiZjA0NzM5ZWNkYjY1ZDk1MzAyMzcxZDYyOWQ5ZTM3ZTdiNGEzNjFkYTQ2OGYxZWQ1MzU4OTIyZDJlYTc1MmRkMTFjMzY2ZjMwMTdiMTRhYTAxMWQyYWYwM2M0NGY5NTU3OTA5OGExNWUzY2Y5YjQ0ODZmOGZmZTljMjM5ZjM0ZGU3MTUxZjZjYTY1MDBmZTRiODUwYzNmMWMwMmU4MDFjYWYzYTI0NDY0NjE0ZTQyODAxNjE1YjhmZmFhMDdhYzgyNTE0OTNmZmRhN2RlNWRkZjMzNjg4ODBjMmI5NWIwMzBmNDFmOGYxNTA2NmFkZDA3MWE2NmNmNjBlNWY0NmYzYTIzMGQzOTdiNjUyOTYzYTIxYTUzZg
package/SECURITY.md CHANGED
@@ -2,25 +2,15 @@
2
2
 
3
3
  ## Supported Versions
4
4
 
5
- CyberChef is supported on a best endeavours basis. Patches will be applied to
6
- the latest version rather than retroactively to older versions. To ensure you
7
- are using the most secure version of CyberChef, please make sure you have the
8
- [latest release](https://github.com/gchq/CyberChef/releases/latest). The
9
- official [live demo](https://gchq.github.io/CyberChef/) is always up to date.
5
+ CyberChef is supported on a best endeavours basis.
6
+ Patches will be applied to the latest version rather than retroactively to older versions.
7
+ To ensure you are using the most secure version of CyberChef, please make sure you have the [latest release](https://github.com/gchq/CyberChef/releases/latest). [The official website](https://gchq.github.io/CyberChef/) is always up to date.
10
8
 
11
9
  ## Reporting a Vulnerability
12
10
 
13
- In most scenarios, the most appropriate way to report a vulnerability is to
14
- [raise a new issue](https://github.com/gchq/CyberChef/issues/new/choose)
15
- describing the problem in as much detail as possible, ideally with examples.
16
- This will obviously be public. If you feel that the vulnerability is
17
- significant enough to warrant a private disclosure, please email
18
- [oss@gchq.gov.uk](mailto:oss@gchq.gov.uk) and
19
- [n1474335@gmail.com](mailto:n1474335@gmail.com).
11
+ If you discover a vulnerability in CyberChef, please do not publicly disclose it, and do not create a GitHub issue.
20
12
 
21
- Disclosures of vulnerabilities in CyberChef are always welcomed. Whilst we aim
22
- to write clean and secure code free from bugs, we recognise that this is an open
23
- source project written by analysts in their spare time, relying on dozens of
24
- open source libraries that are modified and updated on a regular basis. We hope
25
- that the community will continue to support us as we endeavour to maintain and
26
- develop this tool together.
13
+ Instead, send an email as soon as possible to [CyberChefSecurity@gchq.gov.uk](mailto:CyberChefSecurity@gchq.gov.uk).
14
+ The report will be acknowledged and actioned urgently by the CyberChef maintainers.
15
+
16
+ If you do not receive a timely acknowledgement, please notify [oss@gchq.gov.uk](mailto:oss@gchq.gov.uk) and [CyberChef@gchq.gov.uk](mailto:CyberChef@gchq.gov.uk) of your vulnerability report.
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "cyberchef",
3
- "version": "11.0.0",
3
+ "version": "11.1.0",
4
4
  "description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
5
- "author": "n1474335 <n1474335@gmail.com>",
5
+ "author": "GCHQ <CyberChef@gchq.gov.uk>",
6
6
  "homepage": "https://gchq.github.io/CyberChef",
7
7
  "copyright": "Crown copyright 2016",
8
8
  "license": "Apache-2.0",
@@ -39,30 +39,31 @@
39
39
  "node >= 24"
40
40
  ],
41
41
  "devDependencies": {
42
- "@babel/eslint-parser": "^7.28.6",
42
+ "@babel/eslint-parser": "^7.29.7",
43
43
  "@babel/plugin-syntax-import-assertions": "^7.28.6",
44
- "@babel/plugin-transform-runtime": "^7.29.0",
45
- "@babel/preset-env": "^7.29.2",
46
- "@babel/runtime": "^7.29.2",
44
+ "@babel/plugin-transform-runtime": "^7.29.7",
45
+ "@babel/preset-env": "^7.29.7",
46
+ "@babel/runtime": "^7.29.7",
47
47
  "@codemirror/commands": "^6.10.3",
48
48
  "@codemirror/language": "^6.12.3",
49
49
  "@codemirror/search": "^6.7.0",
50
50
  "@codemirror/state": "^6.5.4",
51
- "@codemirror/view": "^6.41.1",
51
+ "@codemirror/view": "^6.43.1",
52
+ "@puppeteer/browsers": "3.0.4",
52
53
  "autoprefixer": "^10.5.0",
53
54
  "babel-loader": "^10.1.1",
54
55
  "base64-loader": "^1.0.0",
55
- "chromedriver": "^146.0.6",
56
+ "chromedriver": "^148.0.4",
56
57
  "cli-progress": "^3.12.0",
57
58
  "colors": "^1.4.0",
58
59
  "compression-webpack-plugin": "^12.0.0",
59
60
  "copy-webpack-plugin": "^14.0.0",
60
61
  "core-js": "^3.49.0",
61
- "cspell": "^9.7.0",
62
+ "cspell": "^10.0.1",
62
63
  "css-loader": "^7.1.4",
63
64
  "eslint": "^9.39.4",
64
65
  "eslint-plugin-jsdoc": "^50.8.0",
65
- "globals": "^17.4.0",
66
+ "globals": "^17.6.0",
66
67
  "grunt": "^1.6.2",
67
68
  "grunt-chmod": "~1.1.1",
68
69
  "grunt-concurrent": "^3.0.0",
@@ -70,25 +71,25 @@
70
71
  "grunt-contrib-connect": "^5.0.1",
71
72
  "grunt-contrib-copy": "~1.0.0",
72
73
  "grunt-contrib-watch": "^1.1.0",
73
- "grunt-eslint": "^25.0.0",
74
+ "grunt-eslint": "^26.0.0",
74
75
  "grunt-exec": "~3.0.0",
75
- "grunt-webpack": "^6.0.0",
76
+ "grunt-webpack": "^8.0.0",
76
77
  "grunt-zip": "^1.0.0",
77
78
  "html-webpack-plugin": "^5.6.7",
78
79
  "imports-loader": "^5.0.0",
79
80
  "mini-css-extract-plugin": "2.10.2",
80
81
  "modify-source-webpack-plugin": "^4.1.0",
81
- "nightwatch": "^3.15.0",
82
- "postcss": "^8.5.10",
82
+ "nightwatch": "^3.16.0",
83
+ "postcss": "^8.5.15",
83
84
  "postcss-css-variables": "^0.19.0",
84
85
  "postcss-import": "^16.1.1",
85
86
  "postcss-loader": "^8.2.1",
86
87
  "prompt": "^1.3.0",
87
- "sitemap": "^8.0.3",
88
- "terser": "^5.46.2",
89
- "webpack": "^5.106.2",
90
- "webpack-bundle-analyzer": "^5.0.0",
91
- "webpack-dev-server": "^5.0.4",
88
+ "sitemap": "^9.0.1",
89
+ "terser": "^5.48.0",
90
+ "webpack": "^5.107.2",
91
+ "webpack-bundle-analyzer": "^5.3.0",
92
+ "webpack-dev-server": "^5.2.4",
92
93
  "webpack-node-externals": "^3.0.0",
93
94
  "worker-loader": "^3.0.8"
94
95
  },
@@ -96,22 +97,23 @@
96
97
  "@alexaltea/capstone-js": "^3.0.5",
97
98
  "@astronautlabs/amf": "^0.0.6",
98
99
  "@blu3r4y/lzma": "^2.3.3",
100
+ "@noble/hashes": "2.2.0",
99
101
  "@wavesenterprise/crypto-gost-js": "^2.1.0-RC1",
100
102
  "@xmldom/xmldom": "^0.8.13",
101
103
  "argon2-browser": "^1.18.0",
102
104
  "arrive": "^2.5.3",
103
105
  "assert": "^2.1.0",
104
106
  "avsc": "^5.7.9",
105
- "bcryptjs": "^2.4.3",
106
- "bignumber.js": "^9.3.1",
107
+ "bcryptjs": "^3.0.3",
108
+ "bignumber.js": "^11.1.3",
107
109
  "blakejs": "^1.2.1",
108
110
  "bootstrap": "4.6.2",
109
111
  "bootstrap-colorpicker": "^3.4.0",
110
112
  "bootstrap-material-design": "^4.1.3",
111
113
  "browserify-zlib": "^0.2.0",
112
- "bson": "^4.7.2",
114
+ "bson": "^7.2.0",
113
115
  "buffer": "^6.0.3",
114
- "cbor": "9.0.2",
116
+ "cbor": "10.0.12",
115
117
  "chi-squared": "^1.1.0",
116
118
  "codepage": "^1.15.0",
117
119
  "crypto-api": "^0.8.5",
@@ -120,8 +122,8 @@
120
122
  "ctph.js": "0.0.5",
121
123
  "d3": "7.9.0",
122
124
  "d3-hexbin": "^0.2.2",
123
- "diff": "^5.2.2",
124
- "dompurify": "^3.4.1",
125
+ "diff": "^9.0.0",
126
+ "dompurify": "^3.4.8",
125
127
  "es6-promisify": "^7.0.0",
126
128
  "escodegen": "^2.1.0",
127
129
  "esprima": "^4.0.1",
@@ -132,7 +134,6 @@
132
134
  "flat": "^6.0.1",
133
135
  "geodesy": "1.1.3",
134
136
  "handlebars": "^4.7.9",
135
- "hash-wasm": "^4.12.0",
136
137
  "highlight.js": "^11.11.1",
137
138
  "ieee754": "^1.2.1",
138
139
  "jimp": "1.6.0",
@@ -141,7 +142,7 @@
141
142
  "js-sha3": "^0.9.3",
142
143
  "jsesc": "^3.1.0",
143
144
  "json5": "^2.2.3",
144
- "jsonata": "^2.1.0",
145
+ "jsonata": "^2.2.1",
145
146
  "jsonpath-plus": "^10.4.0",
146
147
  "jsonwebtoken": "9.0.3",
147
148
  "jsqr": "^1.4.0",
@@ -154,9 +155,9 @@
154
155
  "loglevel-message-prefix": "^3.0.0",
155
156
  "lz-string": "^1.5.0",
156
157
  "lz4js": "^0.2.0",
157
- "markdown-it": "^14.1.1",
158
+ "markdown-it": "^14.2.0",
158
159
  "moment": "^2.30.1",
159
- "moment-timezone": "^0.6.1",
160
+ "moment-timezone": "^0.6.2",
160
161
  "ngeohash": "^0.6.3",
161
162
  "node-forge": "^1.4.0",
162
163
  "node-md6": "^0.1.0",
@@ -168,7 +169,7 @@
168
169
  "path": "^0.12.7",
169
170
  "popper.js": "^1.16.1",
170
171
  "process": "^0.11.10",
171
- "protobufjs": "^7.5.5",
172
+ "protobufjs": "^8.6.2",
172
173
  "punycode.js": "^2.3.1",
173
174
  "qr-image": "^3.2.0",
174
175
  "reflect-metadata": "^0.2.2",
@@ -177,15 +178,15 @@
177
178
  "snackbarjs": "^1.1.0",
178
179
  "sortablejs": "^1.15.7",
179
180
  "split.js": "^1.6.5",
180
- "sql-formatter": "^15.7.3",
181
+ "sql-formatter": "^15.8.1",
181
182
  "ssdeep.js": "0.0.3",
182
183
  "stream-browserify": "^3.0.0",
183
- "tesseract.js": "^6.0.1",
184
- "ua-parser-js": "^1.0.41",
184
+ "tesseract.js": "^7.0.0",
185
+ "ua-parser-js": "^2.0.10",
185
186
  "unorm": "^1.6.0",
186
187
  "url": "^0.11.4",
187
188
  "utf8": "^3.0.0",
188
- "uuid": "^13.0.0",
189
+ "uuid": "^14.0.0",
189
190
  "vkbeautify": "^0.99.3",
190
191
  "xpath": "0.0.34",
191
192
  "xregexp": "^5.1.2",
@@ -49,6 +49,7 @@
49
49
  "Escape Unicode Characters",
50
50
  "Unescape Unicode Characters",
51
51
  "Normalise Unicode",
52
+ "Escape Smart Characters",
52
53
  "To Quoted Printable",
53
54
  "From Quoted Printable",
54
55
  "To Punycode",
@@ -118,6 +119,7 @@
118
119
  "GOST Verify",
119
120
  "GOST Key Wrap",
120
121
  "GOST Key Unwrap",
122
+ "ROR13",
121
123
  "ROT13",
122
124
  "ROT13 Brute Force",
123
125
  "ROT47",
@@ -188,6 +190,7 @@
188
190
  "Generate PGP Key Pair",
189
191
  "PGP Encrypt",
190
192
  "PGP Decrypt",
193
+ "PGP Sign",
191
194
  "PGP Verify",
192
195
  "PGP Encrypt and Sign",
193
196
  "PGP Decrypt and Verify",
@@ -238,6 +241,7 @@
238
241
  "Bit shift right",
239
242
  "Rotate left",
240
243
  "Rotate right",
244
+ "ROR13",
241
245
  "ROT13",
242
246
  "ROT8000"
243
247
  ]
@@ -303,6 +307,7 @@
303
307
  "Diff",
304
308
  "Remove whitespace",
305
309
  "Remove null bytes",
310
+ "Remove ANSI Escape Codes",
306
311
  "To Upper case",
307
312
  "To Lower case",
308
313
  "Swap case",
@@ -348,6 +353,7 @@
348
353
  "Pseudo-Random Number Generator",
349
354
  "Sleep",
350
355
  "File Tree",
356
+ "Wrap",
351
357
  "Take nth bytes",
352
358
  "Drop nth bytes"
353
359
  ]