Posts

Exploiting The Not So Misuse-Resistant Authenticated Encryption API of OpenSSL

The number one best practice in cryptography is to avoid rolling your own. Trying to follow that rule, developers should instead use cryptography functions from the standard library of their programming language or from a well-established and trusted cryptography library. When a function has not been designed with misuse resistance in mind, it’s easy for well-intentioned developers to miss a detail hidden in an overwhelming amount of documentation.

With any function, misuse can be catastrophic, and this is especially true when dealing with cryptography. OpenSSL is used, among other things, by various programming languages to expose cryptographic functions. Many of these languages (i.e. Ruby, PHP, Node.js, Rust, Erlang, and possibly others) expose one of these functions, used to handle AEAD decryption, in an easy-to-misuse way.

NSEC 2025 - Disabling The Camera Operator Write-Up

A challenge where too many rabbit holes were looked into…

NSEC 2024 - Mitosis System Write-Up

A challenge where knowning Set theory would have been helpful…

NSEC 2024 - Inner Ear System Write-Up

A challenge where the weird behaviours of NaN is exploited.

NSEC 2024 - Mirror System Write-Up

A challenge where an argument injection in wget is exploited.

NSEC 2020 - Weakhash Write-Up

A challenge about the “Meet-in-the-Middle” attack.