CVE-2023-31287 json
Insufficient token expiration in Serenity
published 3y ago modified 4mo ago also GHSA-2hp9-3xfr-r9w2 , EUVD-2023-1158
- cvss
- 7.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 38%
- public exploits
- 0
- none known
Summary
An issue was discovered in Serenity Serene (and StartSharp) before 6.7.0. Password reset links are sent by email. A link contains a token that is used to reset the password. This token remains valid even after the password reset and can be used a second time to change the password of the corresponding user. The token expires only 3 hours after issuance and is sent as a query parameter when resetting. An attacker with access to the browser history can thus use the token again to change the password in order to take over the account.
Patch / fix
- nuget Serenity.Net.Core 6.7.0
- nuget Serenity.Net.Web 6.7.0
- serenity serene 6.7.0
- serenity startsharp 6.7.0
Is CVE-2023-31287 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- last yr.
Exploit prediction
0.44% chance of exploitation in the next 30 days, higher than 38% of all scored CVEs (FIRST EPSS, 2026-11-14).
Exploits and checks
- packetstorm.news https://packetstorm.news/files/id/172648 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| NVD | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| CNA | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| GitHub | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| nuget | Serenity.Net.Core | <6.7.0 |
6.7.0 |
| nuget | Serenity.Net.Web | <6.7.0 |
6.7.0 |
Classification
- Weakness
-
- CWE-640 Weak Password Recovery Mechanism for Forgotten Password
References
-
github.com
/serenity-is/Serenity/commit/11b9d267f840513d04b4f4d4876de7823a6e48d2
web, patch, vendor-advisory
-
packetstorm.news
/files/id/172648
exploit, web
-
seclists.org
/fulldisclosure/2023/May/14
mailing-list, web
-
packetstormsecurity.com
/files/172648/Serenity-StartSharp-Software-File-Upload-XSS-User-Enumeration-Reusable-Tokens.html
web
-
nvd.nist.gov
/vuln/detail/CVE-2023-31287
advisory
-
github.com
/serenity-is/Serenity
package
Sources
- CVE List CVE-2023-31287
- GitHub Advisory GHSA-2hp9-3xfr-r9w2
- NVD CVE-2023-31287
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.