Laravel Encrypter Failure to decryption vulnerability
Impact
A potential exploit of the Laravel Encrypter component that may cause the Encrypter to fail on decryption and unexpectedly return false.
Source excerpt · OSVAffected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
| Affected range | Recorded fix |
|---|---|
| From 5.5.0 before 5.5.40Ecosystem versions | 5.5.40 |
| From 5.6.0 before 5.6.15Ecosystem versions | 5.6.15 |
Version evidence: OSV · GHSA-6wjw-qf87-fv5v
View original version evidence (26 explicit versions)
Original source description
A potential exploit of the Laravel Encrypter component that may cause the Encrypter to fail on decryption and unexpectedly return false.
To exploit this, the attacker must be able to modify the encrypted payload before it is decrypted. Depending on the code within your application, this could lead to unexpected behavior when combined with weak type comparisons, for example:
<?php
$decyptedValue = decrypt($secret);
if ($decryptedValue == '') {
// Code is run even though decrypted value is false...
}
References
- Patch github.com/illuminate/encryption/commit/51667a52bd7d135c6aa40a897656ffe9d3cd072d
- Patch github.com/illuminate/encryption/commit/c80b1da6a0412bd74bd56dc80f6126f561631b05
- Security advisory github.com/FriendsOfPHP/security-advisories/blob/master/illuminate/encryption/2018-03-30-1.yaml
- Source reference github.com/illuminate/encryption
- Security advisory medium.com/@taylorotwell/laravel-security-release-5-6-15-and-5-5-40-56f1257933a0