CVE-2023-31287
Insufficient token expiration in Serenity
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.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
7.8
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.
- Record
CVE-2023-31287- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-640
- Updated
- 2026-11-02
CVE List
7.8
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.
- Record
CVE-2023-31287- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-640
- Updated
- 2026-11-02
EUVDEUVD-2023-1158
7.8
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.
- Record
EUVD-2023-1158- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-2hp9-3xfr-r9w2
7.8
Insufficient token expiration in Serenity
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.
- Record
GHSA-2hp9-3xfr-r9w2- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-640
- Updated
- 2026-11-02
OSV
7.8
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.
- Record
CVE-2023-31287- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-2hp9-3xfr-r9w2
7.8
Insufficient token expiration in Serenity
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.
- Record
GHSA-2hp9-3xfr-r9w2- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-640
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
Serenity.Net.CoreNuGet |
before 6.7.0 | 6.7.0 |
Serenity.Net.WebNuGet |
before 6.7.0 | 6.7.0 |
Serenity.Net.CoreNuGet |
before 6.7.0, plus listed versions 5.0.05.0.15.0.105.0.115.0.12 Show 45 moreShow less5.0.135.0.175.0.185.0.195.0.25.0.205.0.215.0.225.0.235.0.245.0.255.0.265.0.275.0.285.0.295.0.35.0.305.0.315.0.325.0.335.0.345.0.355.0.365.0.375.0.385.0.395.0.45.0.405.0.415.0.425.0.435.0.445.0.455.0.465.0.475.0.485.0.495.0.55.0.505.0.515.0.65.0.75.0.85.0.95.1.0 |
6.7.0 |
Serenity.Net.WebNuGet |
before 6.7.0, plus listed versions 5.0.05.0.15.0.105.0.115.0.12 Show 45 moreShow less5.0.135.0.175.0.185.0.195.0.25.0.205.0.215.0.225.0.235.0.245.0.255.0.265.0.275.0.285.0.295.0.35.0.305.0.315.0.325.0.335.0.345.0.355.0.365.0.375.0.385.0.395.0.45.0.405.0.415.0.425.0.435.0.445.0.455.0.465.0.475.0.485.0.495.0.55.0.505.0.515.0.65.0.75.0.85.0.95.1.0 |
6.7.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2023-31287 is a high vulnerability (CVSS 7.8) in Serenity Serene, published April 27, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.43%, the 38th percentile. Fixed in Serenity.Net.Core 6.7.0.
References
github.com/serenity-is/Serenity/commit/11b9d267f840513d04b4f4d4876de7823a6e48d2
seclists.org/fulldisclosure/2023/May/14
packetstormsecurity.com/files/172648/Serenity-StartSharp-Software-File-Upload-XSS-User-Enumeration-Reusable-Tokens.html
packetstorm.news/files/id/172648
nvd.nist.gov/vuln/detail/CVE-2023-31287
github.com/advisories/GHSA-2hp9-3xfr-r9w2
github.com/CVEProject/cvelistV5/tree/main/cves/2023/31xxx/CVE-2023-31287.json
github.com/serenity-is/Serenity
Left out here: 132 versions. The JSON record has them.