GHSA-gjrj-9rj4-pgwx: Perseus actix web Denial of Service Vulnerability
HIGHGHSA-gjrj-9rj4-pgwx is a HIGH denial of service vulnerability (General Security Weakness) affecting Perseus actix web libraries in the crates.io ecosystem. The issue involves dos vulnerability from upstream actix web issues. Remediation is available by upgrading affected packages to version 0.3.0-beta.22.
GHSA-gjrj-9rj4-pgwx at a Glance
How to Fix GHSA-gjrj-9rj4-pgwx
To remediate this vulnerability, upgrade all affected Perseus actix web 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 perseus-actix-web to 0.3.0-beta.22
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for perseus-actix-web
How to Check if You Are Affected
To determine whether your application is affected by GHSA-gjrj-9rj4-pgwx, inspect your project dependencies for Perseus actix web:
inspect dependencies for perseus-actix-web
Analyze the terminal output to locate any version of Perseus actix web in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 0.3.0-beta.22), 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 General Security Weakness. In Perseus actix web, 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
GHSA-gjrj-9rj4-pgwx Affected Perseus actix web Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
perseus-actix-web
|
crates.io |
< 0.3.0-beta.22
|
0.3.0-beta.22
|
References
Frequently Asked Questions
What is GHSA-gjrj-9rj4-pgwx?
Which Perseus actix web versions are affected?
What version fixes GHSA-gjrj-9rj4-pgwx?
Is perseus-actix-web affected?
What CWE is associated with GHSA-gjrj-9rj4-pgwx?
How can I check crates.io dependencies for GHSA-gjrj-9rj4-pgwx?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-gjrj-9rj4-pgwx",
"modified" : "2021-12-17T19:33:49Z",
"published" : "2021-12-15T22:51:07Z",
"aliases" : [ ],
"summary" : "DoS Vulnerability from Upstream Actix Web Issues",
"details" : "### Impact\nThis vulnerability affects all users of the `perseus deploy` functionality who have not exported their sites to static files. If you are using the inbuilt Perseus server in production, there is a memory leak in Actix Web stemming from [this upstream issue](https://github.com/actix/actix-web/issues/1780) which can allow even a single user to cause the process to exhaust its memory on low-memory servers by continuously reloading the page. Note that this issue does not affect all Actix Web applications, but rather results from certain usage patterns which appear to be present in Perseus' server mechanics.\n\n### Patches\nThis vulnerability is addressed in all versions after Perseus `v0.3.0-beta.21`, which temporarily discontinues the use of `perseus-actix-web` (until the upstream bug is fixed) and switches to `perseus-warp` instead, which utilizes [Warp](https://github.com/seanmonstar/warp).\n\nAdditionally, as of Perseus `v0.3.0-beta.22`, the Actix Web integration has been upgraded to use the latest unstable beta version of Actix Web, which appears to partially resolve this issue (the severity of the memory leak is reduced). However, due to the instability of this version, the default integration will remain Warp for now, and a warning will appear if you attempt to use the Actix Web integration.\n\n<details>\n<summary>Using the Actix Web integration</summary>\n\nIf the instability of the latest beta version of Actix Web is not a concern for you, you can use this integration by adding `-i actix-web` to `perseus serve` and the like. This will print a warning about instability, and will then operate with the beta version. Please report any failures in functionality that are not security-related to the Perseus team by [opening an issue on the repository](https://github.com/arctic-hen7/perseus/issues/new/choose).\n\nNote however that switching to the Warp integration requires no code changes whatsoever unless you've ejected, so there are very few disadvantages to this change.\n\n</details>\n\n### Workarounds\nDue to significant infrastructural changes within other Perseus packages that were needed to support Warp, this integration is not backward-compatible with any previous version of Perseus, meaning there are no easily feasible workarounds. If you're only in development though, this vulnerability is irrelevant until you push to production.\n\n### CVE Status\n\nDue to GitHub's requirements, a CVE can't be issued for this security advisory because the issue is technically one with Actix Web (though it's only in combination with certain mechanics in the Perseus server that this problem arises).\n\n### References\nSee [this upstream issue](https://github.com/actix/actix-web/issues/1780) in Actix Web.\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue on this repository\n* Email me at [arctic_hen7@pm.me](mailto:arctic_hen7@pm.me)\n",
"severity" : [ ],
"affected" : [ {
"package" : {
"ecosystem" : "crates.io",
"name" : "perseus-actix-web"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "0.3.0-beta.22"
} ]
} ],
"database_specific" : {
"last_known_affected_version_range" : "<= 0.3.0-beta.21"
}
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/arctic-hen7/perseus/security/advisories/GHSA-gjrj-9rj4-pgwx"
}, {
"type" : "WEB",
"url" : "https://github.com/actix/actix-web/issues/1780"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/arctic-hen7/perseus"
} ],
"database_specific" : {
"cwe_ids" : [ ],
"severity" : "HIGH",
"github_reviewed" : true,
"github_reviewed_at" : "2021-12-15T21:42:48Z",
"nvd_published_at" : null
}
}