Vulnerabilities in pkg:nuget/Serenity.Net.Web
PACKAGECVE-2023-31287 is a HIGH (CVSS 7.8) insufficient token expiration vulnerability (CWE-640: Weak Password Recovery Mechanism for Forgotten Password) affecting Serenity.Net.Core libraries in the NuGet ecosystem. The issue involves insufficient token expiration in serenity. Remediation is available by upgrading affected packages to version 6.7.0.
pkg:nuget/Serenity.Net.Web
Vulnerability advisories affecting package pkg:nuget/Serenity.Net.Web. Select an advisory below to view technical details or fixes.
| Advisory ID | CVE / NVD | Severity | Summary |
|---|---|---|---|
| GHSA-2hp9-3xfr-r9w2 | CVE-2023-31287 | HIGH | Insufficient token expiration in Serenity |
| GHSA-w7jm-9x4m-8qc3 | CVE-2023-31286 | MODERATE | User account enumeration in Serenity |
CVE-2023-31287 at a Glance
Security Impact
CVSS: 7.8
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H).
How to Fix CVE-2023-31287
To remediate this vulnerability, upgrade all affected Serenity.Net.Core dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade Serenity.Net.Core to 6.7.0
Upgrade Serenity.Net.Web to 6.7.0
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for Serenity.Net.Core
How to Check if You Are Affected
To determine whether your application is affected by CVE-2023-31287, inspect your project dependencies for Serenity.Net.Core:
inspect dependencies for Serenity.Net.Core
Analyze the terminal output to locate any version of Serenity.Net.Core in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 6.7.0), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-640: Weak Password Recovery Mechanism for Forgotten Password, where the product contains a mechanism for users to recover or change their passwords without knowing the original password, but the mechanism is weak. In Serenity.Net.Core, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2023-31287 Affected Serenity.Net.Core Versions
2 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
Serenity.Net.Core
|
NuGet |
< 6.7.0
|
6.7.0
|
|
Serenity.Net.Web
|
NuGet |
< 6.7.0
|
6.7.0
|
References
Frequently Asked Questions
What is CVE-2023-31287?
Which Serenity.Net.Core versions are affected?
What version fixes CVE-2023-31287?
Is Serenity.Net.Core affected?
Is Serenity.Net.Web affected?
What is the CVSS score of CVE-2023-31287?
What CWE is associated with CVE-2023-31287?
How can I check NuGet dependencies for CVE-2023-31287?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-2hp9-3xfr-r9w2",
"modified" : "2025-01-31T21:35:22Z",
"published" : "2023-04-27T03:30:23Z",
"aliases" : [ "CVE-2023-31287" ],
"summary" : "Insufficient token expiration in Serenity",
"details" : "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.",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "NuGet",
"name" : "Serenity.Net.Core"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "6.7.0"
} ]
} ]
}, {
"package" : {
"ecosystem" : "NuGet",
"name" : "Serenity.Net.Web"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "6.7.0"
} ]
} ]
} ],
"references" : [ {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2023-31287"
}, {
"type" : "WEB",
"url" : "https://github.com/serenity-is/Serenity/commit/11b9d267f840513d04b4f4d4876de7823a6e48d2"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/serenity-is/Serenity"
}, {
"type" : "WEB",
"url" : "https://packetstorm.news/files/id/172648"
}, {
"type" : "WEB",
"url" : "http://packetstormsecurity.com/files/172648/Serenity-StartSharp-Software-File-Upload-XSS-User-Enumeration-Reusable-Tokens.html"
}, {
"type" : "WEB",
"url" : "http://seclists.org/fulldisclosure/2023/May/14"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-640" ],
"severity" : "HIGH",
"github_reviewed" : true,
"github_reviewed_at" : "2023-04-27T17:09:21Z",
"nvd_published_at" : "2023-04-27T03:15:10Z"
}
}