Closed P3ngu1nW closed 6 months ago
Hi @P3ngu1nW , thanks for reaching out with it.
I've seen number of similar cases before with other libraries and most of them are not about low-level implementations per se but rather about how those libraries are used within applications.
jose-jwt provides enough security controls to avoid confusion scenarios:
Two Phased validation to pre check if input is expected (signing vs encryption)
Strict validation to explicitly expect specific algorithm
Deregister unused algorithms to completely remove decryption path from attack surface if app doesn't need it.
If you can think of any additional feature library can support to make it better - let me know, will be happy to add.
In a mean time i can think of only mentioning it in docs more explicitly.
additional verification methods to be released in v5
v5.0.0 released to nuget.org
https://github.com/dvsekhvalnov/jose-jwt/releases/tag/v5.0.0
Description
Jose.JWT.Decode
will automatically detect whether the user inputs JWS or JWE. This means that if the attacker obtains the public key of JWS, he can forge a JWE Token to pass the verification.POC
A similar issue: CVE-2022-3102