JWT kid injection to path traversal or SQL
If the server uses kid to look up the signing key, it may read a file or query a table. Point kid at a predictable file whose contents you control, then sign with that.
json
{"alg":"HS256","kid":"../../../../dev/null"}
With kid pointing at an empty or known file, sign with that known value (empty string for /dev/null).
bash
# HMAC key becomes the empty file contents; sign with empty secret
jwt_tool eyJ... -S hs256 -p ""
Pro note: if kid feeds a SQL lookup, inject a UNION that returns a key you control, then sign with it. Test both file and DB backends; the header value is attacker controlled and rarely sanitized because developers treat it as an internal identifier.