Skip to content

Added the ability to paste one or more Images from the Clipboard#1876

Merged
C85297 merged 12 commits intogchq:masterfrom
t-martine:master
Feb 9, 2026
Merged

Added the ability to paste one or more Images from the Clipboard#1876
C85297 merged 12 commits intogchq:masterfrom
t-martine:master

Conversation

@t-martine
Copy link
Copy Markdown
Contributor

We have added the ability to paste one or more images directly from the clipboard. This is especially useful if we need screenshots as input, e.g., for QR code analysis.

To use this feature:

  1. Copy image to clipboard (e.g. by taking a screenshot)
  2. Paste it into the input field, just like you would paste text
  3. Work with CyberChef as if the image was loaded as a file

@t-martine
Copy link
Copy Markdown
Contributor Author

resolves #1852

@t-martine
Copy link
Copy Markdown
Contributor Author

@C85297 is there anything left for me to do to get this reviewed? It has been open and ready for quite some time. Is there anything wrong with it? Please let me know. Thanks!

@C85297 C85297 self-requested a review February 9, 2026 11:14
Copy link
Copy Markdown
Member

@C85297 C85297 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @t-martine for submitting this pull request, I'm sorry that it has taken us so long to review it. I've left some comments for you.

// Event handlers
EditorView.domEventHandlers({
paste(event, view) {
const clipboardData = event.clipboardData || window.clipboardData;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@t-martine what is the purpose of window.clipboardData here? I cannot find any documentation for that property.
ClipboardEvent.clipboardData is baseline widely available, so I would have thought it is fine to just use that: https://developer.mozilla.org/en-US/docs/Web/API/ClipboardEvent/clipboardData#browser_compatibility

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this was meant for backwards compatibility with IE11 but I agree to remove it since IE is officially out of support for a while now.

https://stackoverflow.com/questions/56063191/javascript-code-for-copy-to-clipboard-wont-work-in-internet-explorer-11

event.target.files = [];
for (let i = 0; i < items.length; i++) {
const item = items[i];
if (item.type.indexOf("image") !== -1) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good if we could support all file types, rather than just images. Could you not instead check item.kind === 'file'?
https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem/kind

paste(event, view) {
const clipboardData = event.clipboardData || window.clipboardData;
const items = clipboardData.items;
event.target.files = [];
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like bad practice to me to add a custom attribute to an external type. Couldn't we create this list as a local variable, and update the signature of afterPaste to accept a list of files as a second parameter?

@t-martine
Copy link
Copy Markdown
Contributor Author

@C85297 Thank you for the thorough review. I followed your guidance and updated the code. You can now paste any file(s) from the clipboard. Tried it with pdf, docx, csv, png, ....

I kindly ask for a re-review.

@t-martine t-martine requested a review from C85297 February 9, 2026 18:20
@C85297 C85297 merged commit fe69ec5 into gchq:master Feb 9, 2026
2 checks passed
@C85297
Copy link
Copy Markdown
Member

C85297 commented Feb 9, 2026

This is a great contribution. Thank you @t-martine !

mwalbeck pushed a commit to mwalbeck/docker-cyberchef that referenced this pull request Feb 14, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gchq/CyberChef](https://github.com/gchq/CyberChef) | minor | `v10.21.0` -> `v10.22.1` |

---

### Release Notes

<details>
<summary>gchq/CyberChef (gchq/CyberChef)</summary>

### [`v10.22.1`](https://github.com/gchq/CyberChef/releases/tag/v10.22.1)

[Compare Source](gchq/CyberChef@v10.22.0...v10.22.1)

See the [CHANGELOG](https://github.com/gchq/CyberChef/blob/master/CHANGELOG.md) and [commit messages](https://github.com/gchq/CyberChef/commits/master) for details.

### [`v10.22.0`](https://github.com/gchq/CyberChef/blob/HEAD/CHANGELOG.md#400---2016-11-28)

[Compare Source](gchq/CyberChef@v10.21.0...v10.22.0)

- Initial open source commit [@&#8203;n1474335] | [b1d73a72](gchq/CyberChef@b1d73a7)

[10.22.0]: https://github.com/gchq/CyberChef/releases/tag/v10.22.0

[10.21.0]: https://github.com/gchq/CyberChef/releases/tag/v10.21.0

[10.20.0]: https://github.com/gchq/CyberChef/releases/tag/v10.20.0

[10.19.0]: https://github.com/gchq/CyberChef/releases/tag/v10.19.0

[10.18.0]: https://github.com/gchq/CyberChef/releases/tag/v10.18.0

[10.17.0]: https://github.com/gchq/CyberChef/releases/tag/v10.17.0

[10.16.0]: https://github.com/gchq/CyberChef/releases/tag/v10.16.0

[10.15.0]: https://github.com/gchq/CyberChef/releases/tag/v10.15.0

[10.14.0]: https://github.com/gchq/CyberChef/releases/tag/v10.14.0

[10.13.0]: https://github.com/gchq/CyberChef/releases/tag/v10.13.0

[10.12.0]: https://github.com/gchq/CyberChef/releases/tag/v10.12.0

[10.11.0]: https://github.com/gchq/CyberChef/releases/tag/v10.11.0

[10.10.0]: https://github.com/gchq/CyberChef/releases/tag/v10.10.0

[10.9.0]: https://github.com/gchq/CyberChef/releases/tag/v10.9.0

[10.8.0]: https://github.com/gchq/CyberChef/releases/tag/v10.7.0

[10.7.0]: https://github.com/gchq/CyberChef/releases/tag/v10.7.0

[10.6.0]: https://github.com/gchq/CyberChef/releases/tag/v10.6.0

[10.5.0]: https://github.com/gchq/CyberChef/releases/tag/v10.5.0

[10.4.0]: https://github.com/gchq/CyberChef/releases/tag/v10.4.0

[10.3.0]: https://github.com/gchq/CyberChef/releases/tag/v10.3.0

[10.2.0]: https://github.com/gchq/CyberChef/releases/tag/v10.2.0

[10.1.0]: https://github.com/gchq/CyberChef/releases/tag/v10.1.0

[10.0.0]: https://github.com/gchq/CyberChef/releases/tag/v10.0.0

[9.55.0]: https://github.com/gchq/CyberChef/releases/tag/v9.55.0

[9.54.0]: https://github.com/gchq/CyberChef/releases/tag/v9.54.0

[9.53.0]: https://github.com/gchq/CyberChef/releases/tag/v9.53.0

[9.52.0]: https://github.com/gchq/CyberChef/releases/tag/v9.52.0

[9.51.0]: https://github.com/gchq/CyberChef/releases/tag/v9.51.0

[9.50.0]: https://github.com/gchq/CyberChef/releases/tag/v9.50.0

[9.49.0]: https://github.com/gchq/CyberChef/releases/tag/v9.49.0

[9.48.0]: https://github.com/gchq/CyberChef/releases/tag/v9.48.0

[9.47.0]: https://github.com/gchq/CyberChef/releases/tag/v9.47.0

[9.46.0]: https://github.com/gchq/CyberChef/releases/tag/v9.46.0

[9.45.0]: https://github.com/gchq/CyberChef/releases/tag/v9.45.0

[9.44.0]: https://github.com/gchq/CyberChef/releases/tag/v9.44.0

[9.43.0]: https://github.com/gchq/CyberChef/releases/tag/v9.43.0

[9.42.0]: https://github.com/gchq/CyberChef/releases/tag/v9.42.0

[9.41.0]: https://github.com/gchq/CyberChef/releases/tag/v9.41.0

[9.40.0]: https://github.com/gchq/CyberChef/releases/tag/v9.40.0

[9.39.0]: https://github.com/gchq/CyberChef/releases/tag/v9.39.0

[9.38.0]: https://github.com/gchq/CyberChef/releases/tag/v9.38.0

[9.37.0]: https://github.com/gchq/CyberChef/releases/tag/v9.37.0

[9.36.0]: https://github.com/gchq/CyberChef/releases/tag/v9.36.0

[9.35.0]: https://github.com/gchq/CyberChef/releases/tag/v9.35.0

[9.34.0]: https://github.com/gchq/CyberChef/releases/tag/v9.34.0

[9.33.0]: https://github.com/gchq/CyberChef/releases/tag/v9.33.0

[9.32.0]: https://github.com/gchq/CyberChef/releases/tag/v9.32.0

[9.31.0]: https://github.com/gchq/CyberChef/releases/tag/v9.31.0

[9.30.0]: https://github.com/gchq/CyberChef/releases/tag/v9.30.0

[9.29.0]: https://github.com/gchq/CyberChef/releases/tag/v9.29.0

[9.28.0]: https://github.com/gchq/CyberChef/releases/tag/v9.28.0

[9.27.0]: https://github.com/gchq/CyberChef/releases/tag/v9.27.0

[9.26.0]: https://github.com/gchq/CyberChef/releases/tag/v9.26.0

[9.25.0]: https://github.com/gchq/CyberChef/releases/tag/v9.25.0

[9.24.0]: https://github.com/gchq/CyberChef/releases/tag/v9.24.0

[9.23.0]: https://github.com/gchq/CyberChef/releases/tag/v9.23.0

[9.22.0]: https://github.com/gchq/CyberChef/releases/tag/v9.22.0

[9.21.0]: https://github.com/gchq/CyberChef/releases/tag/v9.21.0

[9.20.0]: https://github.com/gchq/CyberChef/releases/tag/v9.20.0

[9.19.0]: https://github.com/gchq/CyberChef/releases/tag/v9.19.0

[9.18.0]: https://github.com/gchq/CyberChef/releases/tag/v9.18.0

[9.17.0]: https://github.com/gchq/CyberChef/releases/tag/v9.17.0

[9.16.0]: https://github.com/gchq/CyberChef/releases/tag/v9.16.0

[9.15.0]: https://github.com/gchq/CyberChef/releases/tag/v9.15.0

[9.14.0]: https://github.com/gchq/CyberChef/releases/tag/v9.14.0

[9.13.0]: https://github.com/gchq/CyberChef/releases/tag/v9.13.0

[9.12.0]: https://github.com/gchq/CyberChef/releases/tag/v9.12.0

[9.11.0]: https://github.com/gchq/CyberChef/releases/tag/v9.11.0

[9.10.0]: https://github.com/gchq/CyberChef/releases/tag/v9.10.0

[9.9.0]: https://github.com/gchq/CyberChef/releases/tag/v9.9.0

[9.8.0]: https://github.com/gchq/CyberChef/releases/tag/v9.8.0

[9.7.0]: https://github.com/gchq/CyberChef/releases/tag/v9.7.0

[9.6.0]: https://github.com/gchq/CyberChef/releases/tag/v9.6.0

[9.5.0]: https://github.com/gchq/CyberChef/releases/tag/v9.5.0

[9.4.0]: https://github.com/gchq/CyberChef/releases/tag/v9.4.0

[9.3.0]: https://github.com/gchq/CyberChef/releases/tag/v9.3.0

[9.2.0]: https://github.com/gchq/CyberChef/releases/tag/v9.2.0

[9.1.0]: https://github.com/gchq/CyberChef/releases/tag/v9.1.0

[9.0.0]: https://github.com/gchq/CyberChef/releases/tag/v9.0.0

[8.38.0]: https://github.com/gchq/CyberChef/releases/tag/v8.38.0

[8.37.0]: https://github.com/gchq/CyberChef/releases/tag/v8.37.0

[8.36.0]: https://github.com/gchq/CyberChef/releases/tag/v8.36.0

[8.35.0]: https://github.com/gchq/CyberChef/releases/tag/v8.35.0

[8.34.0]: https://github.com/gchq/CyberChef/releases/tag/v8.34.0

[8.33.0]: https://github.com/gchq/CyberChef/releases/tag/v8.33.0

[8.32.0]: https://github.com/gchq/CyberChef/releases/tag/v8.32.0

[8.31.0]: https://github.com/gchq/CyberChef/releases/tag/v8.31.0

[8.30.0]: https://github.com/gchq/CyberChef/releases/tag/v8.30.0

[8.29.0]: https://github.com/gchq/CyberChef/releases/tag/v8.29.0

[8.28.0]: https://github.com/gchq/CyberChef/releases/tag/v8.28.0

[8.27.0]: https://github.com/gchq/CyberChef/releases/tag/v8.27.0

[8.26.0]: https://github.com/gchq/CyberChef/releases/tag/v8.26.0

[8.25.0]: https://github.com/gchq/CyberChef/releases/tag/v8.25.0

[8.24.0]: https://github.com/gchq/CyberChef/releases/tag/v8.24.0

[8.23.1]: https://github.com/gchq/CyberChef/releases/tag/v8.23.1

[8.23.0]: https://github.com/gchq/CyberChef/releases/tag/v8.23.0

[8.22.0]: https://github.com/gchq/CyberChef/releases/tag/v8.22.0

[8.21.0]: https://github.com/gchq/CyberChef/releases/tag/v8.21.0

[8.20.0]: https://github.com/gchq/CyberChef/releases/tag/v8.20.0

[8.19.0]: https://github.com/gchq/CyberChef/releases/tag/v8.19.0

[8.18.0]: https://github.com/gchq/CyberChef/releases/tag/v8.18.0

[8.17.0]: https://github.com/gchq/CyberChef/releases/tag/v8.17.0

[8.16.0]: https://github.com/gchq/CyberChef/releases/tag/v8.16.0

[8.15.0]: https://github.com/gchq/CyberChef/releases/tag/v8.15.0

[8.14.0]: https://github.com/gchq/CyberChef/releases/tag/v8.14.0

[8.13.0]: https://github.com/gchq/CyberChef/releases/tag/v8.13.0

[8.12.0]: https://github.com/gchq/CyberChef/releases/tag/v8.12.0

[8.11.0]: https://github.com/gchq/CyberChef/releases/tag/v8.11.0

[8.10.0]: https://github.com/gchq/CyberChef/releases/tag/v8.10.0

[8.9.0]: https://github.com/gchq/CyberChef/releases/tag/v8.9.0

[8.8.0]: https://github.com/gchq/CyberChef/releases/tag/v8.8.0

[8.7.0]: https://github.com/gchq/CyberChef/releases/tag/v8.7.0

[8.6.0]: https://github.com/gchq/CyberChef/releases/tag/v8.6.0

[8.5.0]: https://github.com/gchq/CyberChef/releases/tag/v8.5.0

[8.4.0]: https://github.com/gchq/CyberChef/releases/tag/v8.4.0

[8.3.0]: https://github.com/gchq/CyberChef/releases/tag/v8.3.0

[8.2.0]: https://github.com/gchq/CyberChef/releases/tag/v8.2.0

[8.1.0]: https://github.com/gchq/CyberChef/releases/tag/v8.1.0

[8.0.0]: https://github.com/gchq/CyberChef/releases/tag/v8.0.0

[7.0.0]: https://github.com/gchq/CyberChef/releases/tag/v7.0.0

[6.0.0]: https://github.com/gchq/CyberChef/releases/tag/v6.0.0

[5.0.0]: https://github.com/gchq/CyberChef/releases/tag/v5.0.0

[4.0.0]: gchq/CyberChef@b1d73a7

[@&#8203;n1474335]: https://github.com/n1474335

[@&#8203;d98762625]: https://github.com/d98762625

[@&#8203;j433866]: https://github.com/j433866

[@&#8203;n1073645]: https://github.com/n1073645

[@&#8203;GCHQ77703]: https://github.com/GCHQ77703

[@&#8203;h345983745]: https://github.com/h345983745

[@&#8203;s2224834]: https://github.com/s2224834

[@&#8203;artemisbot]: https://github.com/artemisbot

[@&#8203;tlwr]: https://github.com/tlwr

[@&#8203;picapi]: https://github.com/picapi

[@&#8203;Dachande663]: https://github.com/Dachande663

[@&#8203;JustAnotherMark]: https://github.com/JustAnotherMark

[@&#8203;sevzero]: https://github.com/sevzero

[@&#8203;PenguinGeorge]: https://github.com/PenguinGeorge

[@&#8203;arnydo]: https://github.com/arnydo

[@&#8203;klaxon1]: https://github.com/klaxon1

[@&#8203;bwhitn]: https://github.com/bwhitn

[@&#8203;jarmovanlenthe]: https://github.com/jarmovanlenthe

[@&#8203;tcode2k16]: https://github.com/tcode2k16

[@&#8203;Cynser]: https://github.com/Cynser

[@&#8203;anthony-arnold]: https://github.com/anthony-arnold

[@&#8203;masq]: https://github.com/masq

[@&#8203;Ge0rg3]: https://github.com/Ge0rg3

[@&#8203;MShwed]: https://github.com/MShwed

[@&#8203;kassi]: https://github.com/kassi

[@&#8203;jarrodconnolly]: https://github.com/jarrodconnolly

[@&#8203;VirtualColossus]: https://github.com/VirtualColossus

[@&#8203;cbeuw]: https://github.com/cbeuw

[@&#8203;matthieuxyz]: https://github.com/matthieuxyz

[@&#8203;Flavsditz]: https://github.com/Flavsditz

[@&#8203;pointhi]: https://github.com/pointhi

[@&#8203;MarvinJWendt]: https://github.com/MarvinJWendt

[@&#8203;dmfj]: https://github.com/dmfj

[@&#8203;mattnotmitt]: https://github.com/mattnotmitt

[@&#8203;Danh4]: https://github.com/Danh4

[@&#8203;john19696]: https://github.com/john19696

[@&#8203;t-8ch]: https://github.com/t-8ch

[@&#8203;hettysymes]: https://github.com/hettysymes

[@&#8203;swesven]: https://github.com/swesven

[@&#8203;mikecat]: https://github.com/mikecat

[@&#8203;crespyl]: https://github.com/crespyl

[@&#8203;thomasleplus]: https://github.com/thomasleplus

[@&#8203;valdelaseras]: https://github.com/valdelaseras

[@&#8203;brun0ne]: https://github.com/brun0ne

[@&#8203;joostrijneveld]: https://github.com/joostrijneveld

[@&#8203;Xenonym]: https://github.com/Xenonym

[@&#8203;gchq77703]: https://github.com/gchq77703

[@&#8203;a3957273]: https://github.com/a3957273

[@&#8203;0xThiebaut]: https://github.com/0xThiebaut

[@&#8203;cnotin]: https://github.com/cnotin

[@&#8203;KevinSJ]: https://github.com/KevinSJ

[@&#8203;sw5678]: https://github.com/sw5678

[@&#8203;sg5506844]: https://github.com/sg5506844

[@&#8203;AliceGrey]: https://github.com/AliceGrey

[@&#8203;AshCorr]: https://github.com/AshCorr

[@&#8203;simonw]: https://github.com/simonw

[@&#8203;chriswhite199]: https://github.com/chriswhite199

[@&#8203;breakersall]: https://github.com/breakersall

[@&#8203;evanreichard]: https://github.com/evanreichard

[@&#8203;devcydo]: https://github.com/devcydo

[@&#8203;zb3]: https://github.com/zb3

[@&#8203;jkataja]: https://github.com/jkataja

[@&#8203;tomgond]: https://github.com/tomgond

[@&#8203;e218736]: https://github.com/e218736

[@&#8203;TheZ3ro]: https://github.com/TheZ3ro

[@&#8203;EvieHarv]: https://github.com/EvieHarv

[@&#8203;cplussharp]: https://github.com/cplussharp

[@&#8203;robinsandhu]: https://github.com/robinsandhu

[@&#8203;eltociear]: https://github.com/eltociear

[@&#8203;GuilhermoReadonly]: https://github.com/GuilhermoReadonly

[@&#8203;simonarnell]: https://github.com/simonarnell

[@&#8203;RandomByte]: https://github.com/RandomByte

[@&#8203;c65722]: https://github.com/c65722

[@&#8203;c65722]: https://github.com/c65722

[@&#8203;c65722]: https://github.com/c65722

[@&#8203;max0x53]: https://github.com/max0x53

[@&#8203;Adamkadaban]: https://github.com/Adamkadaban

[@&#8203;c65722]: https://github.com/c65722

[@&#8203;jb30795]: https://github.com/jb30795

[@&#8203;FranciscoPombal]: https://github.com/FranciscoPombal

[@&#8203;Oshawk]: https://github.com/Oshawk

[@&#8203;Oshawk]: https://github.com/Oshawk

[@&#8203;bartblaze]: https://github.com/bartblaze

[@&#8203;exactlyaron]: https://github.com/exactlyaron

[@&#8203;k3ach]: https://github.com/k3ach

[@&#8203;vs4vijay]: https://github.com/vs4vijay

[@&#8203;FranciscoPombal]: https://github.com/FranciscoPombal

[@&#8203;FranciscoPombal]: https://github.com/FranciscoPombal

[@&#8203;linuxgemini]: https://github.com/linuxgemini

[@&#8203;depperm]: https://github.com/depperm

[@&#8203;evenstensberg]: https://github.com/evenstensberg

[@&#8203;bartblaze]: https://github.com/bartblaze

[@&#8203;0xh3xa]: https://github.com/0xh3xa

[@&#8203;flakjacket95]: https://github.com/flakjacket95

[@&#8203;zhzy0077]: https://github.com/zhzy0077

[@&#8203;JSCU-CNI]: https://github.com/JSCU-CNI

[@&#8203;ccarpo]: https://github.com/ccarpo

[@&#8203;r4mos]: https://github.com/r4mos

[@&#8203;0xh3xa]: https://github.com/0xh3xa

[@&#8203;0xh3xa]: https://github.com/0xh3xa

[@&#8203;PathToLife]: https://github.com/PathToLife

[@&#8203;peterc-s]: https://github.com/peterc-s

[@&#8203;plvie]: https://github.com/plvie

[@&#8203;kenduguay1]: https://github.com/kenduguay1

[@&#8203;jonking-ajar]: https://github.com/jonking-ajar

[@&#8203;PathToLife]: https://github.com/PathToLife

[@&#8203;r4mos]: https://github.com/r4mos

[@&#8203;jg42526]: https://github.com/jg42526

[@&#8203;es45411]: https://github.com/es45411

[@&#8203;gchq]: https://github.com/gchq

[@&#8203;gchqdev364]: https://github.com/gchqdev364

[@&#8203;GCHQDeveloper94872]: https://github.com/GCHQDeveloper94872

[@&#8203;Sma-Das]: https://github.com/Sma-Das

[@&#8203;gchq]: https://github.com/gchq

[@&#8203;Odyhibit]: https://github.com/Odyhibit

[@&#8203;ericli-splunk]: https://github.com/ericli-splunk

[@&#8203;xumptex]: https://github.com/xumptex

[@&#8203;bartvanandel]: https://github.com/bartvanandel

[@&#8203;bartvanandel]: https://github.com/bartvanandel

[@&#8203;kendallgoto]: https://github.com/kendallgoto

[@&#8203;remingtr]: https://github.com/remingtr

[@&#8203;0xff1ce]: https://github.com/0xff1ce

[@&#8203;starplanet]: https://github.com/starplanet

[@&#8203;C85297]: https://github.com/C85297

[@&#8203;GCHQDeveloper581]: https://github.com/GCHQDeveloper581

[@&#8203;ThomasNotTom]: https://github.com/ThomasNotTom

[@&#8203;rbpi]: https://github.com/rbpi

[@&#8203;AlexGustafsson]: https://github.com/AlexGustafsson

[@&#8203;tuliperis]: https://github.com/tuliperis

[@&#8203;thomasxm]: https://github.com/thomasxm

[@&#8203;twostraws]: https://github.com/twostraws

[@&#8203;beneri]: https://github.com/beneri

[@&#8203;t-martine]: https://github.com/t-martine

[@&#8203;wesinator]: https://github.com/wesinator

[@&#8203;Raka-loah]: https://github.com/Raka-loah

[8ad18b]: gchq/CyberChef@8ad18bc

[9a33498]: gchq/CyberChef@9a33498

[289a417]: gchq/CyberChef@289a417

[e9ca4dc]: gchq/CyberChef@e9ca4dc

[dd18e52]: gchq/CyberChef@dd18e52

[a895d1d]: gchq/CyberChef@a895d1d

[31a7f83]: gchq/CyberChef@31a7f83

[760eff4]: gchq/CyberChef@760eff4

[65ffd8d]: gchq/CyberChef@65ffd8d

[0a353ee]: gchq/CyberChef@0a353ee

[66d445c]: gchq/CyberChef@66d445c

[ab37c1e]: gchq/CyberChef@ab37c1e

[965570d]: gchq/CyberChef@965570d

[a477f47]: gchq/CyberChef@a477f47

[7a5225c]: gchq/CyberChef@7a5225c

[5f88ae4]: gchq/CyberChef@5f88ae4

[0e82e4b]: gchq/CyberChef@0e82e4b

[d635cca]: gchq/CyberChef@d635cca

[895a929]: gchq/CyberChef@895a929

[270a333]: gchq/CyberChef@270a333

[d3adfc7]: gchq/CyberChef@d3adfc7

[47c85a1]: gchq/CyberChef@47c85a1

[3822c6c]: gchq/CyberChef@3822c6c

[66d445c]: gchq/CyberChef@66d445c

[ab37c1e]: gchq/CyberChef@ab37c1e

[965570d]: gchq/CyberChef@965570d

[a477f47]: gchq/CyberChef@a477f47

[7a5225c]: gchq/CyberChef@7a5225c

[5f88ae4]: gchq/CyberChef@5f88ae4

[0e82e4b]: gchq/CyberChef@0e82e4b

[d635cca]: gchq/CyberChef@d635cca

[895a929]: gchq/CyberChef@895a929

[270a333]: gchq/CyberChef@270a333

[d3adfc7]: gchq/CyberChef@d3adfc7

[47c85a1]: gchq/CyberChef@47c85a1

[3822c6c]: gchq/CyberChef@3822c6c

[66d445c]: gchq/CyberChef@66d445c

[ab37c1e]: gchq/CyberChef@ab37c1e

[965570d]: gchq/CyberChef@965570d

[a477f47]: gchq/CyberChef@a477f47

[7a5225c]: gchq/CyberChef@7a5225c

[5f88ae4]: gchq/CyberChef@5f88ae4

[0e82e4b]: gchq/CyberChef@0e82e4b

[d635cca]: gchq/CyberChef@d635cca

[895a929]: gchq/CyberChef@895a929

[270a333]: gchq/CyberChef@270a333

[d3adfc7]: gchq/CyberChef@d3adfc7

[47c85a1]: gchq/CyberChef@47c85a1

[3822c6c]: gchq/CyberChef@3822c6c

[66d445c]: gchq/CyberChef@66d445c

[#&#8203;95]: gchq/CyberChef#299

[#&#8203;173]: gchq/CyberChef#173

[#&#8203;143]: gchq/CyberChef#143

[#&#8203;224]: gchq/CyberChef#224

[#&#8203;239]: gchq/CyberChef#239

[#&#8203;248]: gchq/CyberChef#248

[#&#8203;255]: gchq/CyberChef#255

[#&#8203;277]: gchq/CyberChef#277

[#&#8203;281]: gchq/CyberChef#281

[#&#8203;284]: gchq/CyberChef#284

[#&#8203;291]: gchq/CyberChef#291

[#&#8203;294]: gchq/CyberChef#294

[#&#8203;296]: gchq/CyberChef#296

[#&#8203;298]: gchq/CyberChef#298

[#&#8203;311]: gchq/CyberChef#311

[#&#8203;325]: gchq/CyberChef#325

[#&#8203;338]: gchq/CyberChef#338

[#&#8203;340]: gchq/CyberChef#340

[#&#8203;344]: gchq/CyberChef#344

[#&#8203;348]: gchq/CyberChef#348

[#&#8203;351]: gchq/CyberChef#351

[#&#8203;387]: gchq/CyberChef#387

[#&#8203;394]: gchq/CyberChef#394

[#&#8203;428]: gchq/CyberChef#428

[#&#8203;439]: gchq/CyberChef#439

[#&#8203;440]: gchq/CyberChef#440

[#&#8203;441]: gchq/CyberChef#441

[#&#8203;443]: gchq/CyberChef#443

[#&#8203;446]: gchq/CyberChef#446

[#&#8203;448]: gchq/CyberChef#448

[#&#8203;449]: gchq/CyberChef#449

[#&#8203;455]: gchq/CyberChef#455

[#&#8203;458]: gchq/CyberChef#458

[#&#8203;461]: gchq/CyberChef#461

[#&#8203;467]: gchq/CyberChef#467

[#&#8203;468]: gchq/CyberChef#468

[#&#8203;476]: gchq/CyberChef#476

[#&#8203;477]: gchq/CyberChef#477

[#&#8203;489]: gchq/CyberChef#489

[#&#8203;496]: gchq/CyberChef#496

[#&#8203;500]: gchq/CyberChef#500

[#&#8203;506]: gchq/CyberChef#506

[#&#8203;515]: gchq/CyberChef#515

[#&#8203;516]: gchq/CyberChef#516

[#&#8203;525]: gchq/CyberChef#525

[#&#8203;528]: gchq/CyberChef#528

[#&#8203;530]: gchq/CyberChef#530

[#&#8203;531]: gchq/CyberChef#531

[#&#8203;533]: gchq/CyberChef#533

[#&#8203;535]: gchq/CyberChef#535

[#&#8203;556]: gchq/CyberChef#556

[#&#8203;566]: gchq/CyberChef#566

[#&#8203;571]: gchq/CyberChef#571

[#&#8203;585]: gchq/CyberChef#585

[#&#8203;591]: gchq/CyberChef#591

[#&#8203;595]: gchq/CyberChef#595

[#&#8203;614]: gchq/CyberChef#614

[#&#8203;625]: gchq/CyberChef#625

[#&#8203;627]: gchq/CyberChef#627

[#&#8203;632]: gchq/CyberChef#632

[#&#8203;652]: gchq/CyberChef#652

[#&#8203;653]: gchq/CyberChef#653

[#&#8203;674]: gchq/CyberChef#674

[#&#8203;683]: gchq/CyberChef#683

[#&#8203;865]: gchq/CyberChef#865

[#&#8203;906]: gchq/CyberChef#906

[#&#8203;912]: gchq/CyberChef#912

[#&#8203;917]: gchq/CyberChef#917

[#&#8203;934]: gchq/CyberChef#934

[#&#8203;948]: gchq/CyberChef#948

[#&#8203;951]: gchq/CyberChef#951

[#&#8203;952]: gchq/CyberChef#952

[#&#8203;965]: gchq/CyberChef#965

[#&#8203;966]: gchq/CyberChef#966

[#&#8203;987]: gchq/CyberChef#987

[#&#8203;999]: gchq/CyberChef#999

[#&#8203;1006]: gchq/CyberChef#1006

[#&#8203;1022]: gchq/CyberChef#1022

[#&#8203;1037]: gchq/CyberChef#1037

[#&#8203;1045]: gchq/CyberChef#1045

[#&#8203;1049]: gchq/CyberChef#1049

[#&#8203;1065]: gchq/CyberChef#1065

[#&#8203;1066]: gchq/CyberChef#1066

[#&#8203;1083]: gchq/CyberChef#1083

[#&#8203;1189]: gchq/CyberChef#1189

[#&#8203;1242]: gchq/CyberChef#1242

[#&#8203;1244]: gchq/CyberChef#1244

[#&#8203;1313]: gchq/CyberChef#1313

[#&#8203;1326]: gchq/CyberChef#1326

[#&#8203;1364]: gchq/CyberChef#1364

[#&#8203;1264]: gchq/CyberChef#1264

[#&#8203;1266]: gchq/CyberChef#1266

[#&#8203;1250]: gchq/CyberChef#1250

[#&#8203;1308]: gchq/CyberChef#1308

[#&#8203;1405]: gchq/CyberChef#1405

[#&#8203;1421]: gchq/CyberChef#1421

[#&#8203;1427]: gchq/CyberChef#1427

[#&#8203;1472]: gchq/CyberChef#1472

[#&#8203;1457]: gchq/CyberChef#1457

[#&#8203;1466]: gchq/CyberChef#1466

[#&#8203;1456]: gchq/CyberChef#1456

[#&#8203;1450]: gchq/CyberChef#1450

[#&#8203;1498]: gchq/CyberChef#1498

[#&#8203;1499]: gchq/CyberChef#1499

[#&#8203;1528]: gchq/CyberChef#1528

[#&#8203;661]: gchq/CyberChef#661

[#&#8203;493]: gchq/CyberChef#493

[#&#8203;592]: gchq/CyberChef#592

[#&#8203;1703]: gchq/CyberChef#1703

[#&#8203;1675]: gchq/CyberChef#1675

[#&#8203;1678]: gchq/CyberChef#1678

[#&#8203;1541]: gchq/CyberChef#1541

[#&#8203;1667]: gchq/CyberChef#1667

[#&#8203;1555]: gchq/CyberChef#1555

[#&#8203;1694]: gchq/CyberChef#1694

[#&#8203;1699]: gchq/CyberChef#1699

[#&#8203;1757]: gchq/CyberChef#1757

[#&#8203;1752]: gchq/CyberChef#1752

[#&#8203;1753]: gchq/CyberChef#1753

[#&#8203;1750]: gchq/CyberChef#1750

[#&#8203;1591]: gchq/CyberChef#1591

[#&#8203;654]: gchq/CyberChef#654

[#&#8203;1762]: gchq/CyberChef#1762

[#&#8203;1606]: gchq/CyberChef#1606

[#&#8203;1197]: gchq/CyberChef#1197

[#&#8203;933]: gchq/CyberChef#933

[#&#8203;1361]: gchq/CyberChef#1361

[#&#8203;1765]: gchq/CyberChef#1765

[#&#8203;1767]: gchq/CyberChef#1767

[#&#8203;1769]: gchq/CyberChef#1769

[#&#8203;1759]: gchq/CyberChef#1759

[#&#8203;1504]: gchq/CyberChef#1504

[#&#8203;512]: gchq/CyberChef#512

[#&#8203;1732]: gchq/CyberChef#1732

[#&#8203;1789]: gchq/CyberChef#1789

[#&#8203;1040]: gchq/CyberChef#1040

[#&#8203;2176]: gchq/CyberChef#2176

[#&#8203;2177]: gchq/CyberChef#2177

[#&#8203;2174]: gchq/CyberChef#2174

[#&#8203;2058]: gchq/CyberChef#2058

[#&#8203;1861]: gchq/CyberChef#1861

[#&#8203;2055]: gchq/CyberChef#2055

[#&#8203;2169]: gchq/CyberChef#2169

[#&#8203;2175]: gchq/CyberChef#2175

[#&#8203;2173]: gchq/CyberChef#2173

[#&#8203;2172]: gchq/CyberChef#2172

[#&#8203;2136]: gchq/CyberChef#2136

[#&#8203;2165]: gchq/CyberChef#2165

[#&#8203;2159]: gchq/CyberChef#2159

[#&#8203;2086]: gchq/CyberChef#2086

[#&#8203;2118]: gchq/CyberChef#2118

[#&#8203;2166]: gchq/CyberChef#2166

[#&#8203;2188]: gchq/CyberChef#2188

[#&#8203;2137]: gchq/CyberChef#2137

[#&#8203;1876]: gchq/CyberChef#1876

[#&#8203;2186]: gchq/CyberChef#2186

[#&#8203;1573]: gchq/CyberChef#1573

[#&#8203;2183]: gchq/CyberChef#2183

[#&#8203;2182]: gchq/CyberChef#2182

[#&#8203;2181]: gchq/CyberChef#2181

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDYuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: https://git.walbeck.it/mwalbeck/docker-cyberchef/pulls/452
Co-authored-by: renovate-bot <bot@walbeck.it>
Co-committed-by: renovate-bot <bot@walbeck.it>
mkilijanek pushed a commit to mkilijanek/CyberChef that referenced this pull request Feb 23, 2026
Incorporates 37 upstream commits from gchq/CyberChef master including:
- Fix: Move Magic checks from Escape to Unescape Unicode Characters (gchq#2195)
- Paste spreadsheets as text (gchq#2200)
- Fix Roboto Mono font (gchq#2199)
- Fix return of buffer for PNG QR image generation (gchq#2125)
- Update JIMP (gchq#2171)
- Bump v10.22.1 (gchq#2193)
- Bump v10.22.0 (gchq#2189)
- Fixed Percent delimiter for hex encoding (gchq#2137)
- Added ability to paste Images from Clipboard (gchq#1876)
- Quoted Printable improvements (gchq#2186)
- Fix freeze when output text decoding fails (gchq#1573)
- Fix import operations with special chars (gchq#1040)
- Add Bech32 encode/decode operations
- Various bug fixes and improvements

Conflict resolution:
- Workflow files: kept Node 24 + actions@v4 (local upgrade)
- package.json: kept jsonwebtoken 9.0.0, fixJimpModule postinstall, added upstream 'tag' script
- package-lock.json: kept local version (consistent with jimp 1.6.0 install)
- sitemap.mjs: kept modern 'with' import assertion syntax
- Code.mjs: kept escaped curly brace regex for Node 24 compatibility
- newMinorVersion.mjs: added upstream ignoredAuthors constant

https://claude.ai/code/session_011xozAMdxys1JF7nLRQsMtg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants