Bump Version to 0.18.0

This commit is contained in:
2026-09-16 00:06:04 +03:00
parent 0babc6a96d
commit 2cc6f5e5f0
2 changed files with 12 additions and 2 deletions
+11 -1
View File
@@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [Unreleased]
## [0.18.0] - 2026-09-16
### Added
@@ -37,6 +37,16 @@ call now exist:
client-supplied id alone (verified live: a second customer attempting to read/edit the first's
address or order gets `AddressNotFoundException`/`OrderNotFoundException`, not the record).
### Fixed
- `Modules\Core\Auth\Services\UserOtpService::validate()`'s wrong-guess counter (`otp_attempts`)
was read-check-increment-saved with no locking — two guesses fired in parallel for the same
user could each read the same pre-increment value and both save past `max_attempts`, letting an
attacker exceed the 5-guess lockout by parallelizing requests instead of sending them serially.
Now wrapped in a `DB::transaction()` with `lockForUpdate()` on the user row, so concurrent
guesses serialize correctly against the shared counter.
- The OTP code comparison used a plain `!=` rather than a timing-safe comparison. Now
`hash_equals()`.
## [0.17.5] - 2026-09-15
### Added
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "boboko/core",
"description": "Core module — authentication and shared panel behaviour",
"type": "library",
"version": "0.17.5",
"version": "0.18.0",
"autoload": {
"psr-4": {
"Modules\\Core\\": "src/"