salvo
A powerful web framework built with a simplified design.
Activity
- Latest release
- 2w ago
- Total releases
- 249
- Cadence
- ~11 days
- Last 12 months
- 22
Reach
- Downloads
- 12.3M
- Stars
- 4.4k
Details
- License
- Apache-2.0
- First release
- Feb 04, 2020
| Version | Released | |
|---|---|---|
0.96.0
minor
|
0.96.0
minor
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.95.2
patch
|
0.95.2
patch
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.95.1
unknown
|
0.95.1
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.95.0
unknown
|
0.95.0
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.94.0
unknown
|
0.94.0
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.93.0
unknown
|
0.93.0
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.92.2
unknown
|
0.92.2
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.92.1
unknown
|
0.92.1
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.92.0
unknown
|
0.92.0
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.91.1
unknown
|
0.91.1
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.90.1
unknown
|
0.90.1
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.89.3
unknown
|
0.89.3
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.89.2
unknown
2 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev |
0.89.2
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.89.1
unknown
2 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev |
0.89.1
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.89.0
unknown
2 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev |
0.89.0
unknown
Dependencies (17)
+ 9 more
Changelog
Compare changes
|
|
0.88.1
unknown
2 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev |
0.88.1
unknown
Dependencies (16)
+ 8 more
Changelog
Compare changes
|
|
0.88.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.88.0
unknown
Dependencies (16)
+ 8 more
Changelog
Compare changes
|
|
0.87.1
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.87.1
unknown
Dependencies (16)
+ 8 more
Changelog
Compare changes
|
|
0.87.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.87.0
unknown
Dependencies (16)
+ 8 more
Changelog
Compare changes
|
|
0.86.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.86.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.85.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.85.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.84.2
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.84.2
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.84.1
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.84.1
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.84.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.84.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.83.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.83.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.82.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.82.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.81.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.81.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.80.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.80.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.79.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.79.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.78.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.78.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.77.1
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.77.1
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.77.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.77.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.76.2
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.76.2
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.76.1
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.76.1
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.76.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.76.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.75.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.75.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.74.3
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.74.3
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.74.2
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.74.2
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.74.1
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.74.1
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.74.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.74.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.73.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.73.0
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.72.4
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.72.4
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.72.3
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.72.3
unknown
Dependencies (15)
+ 7 more
Changelog
Compare changes
|
|
0.72.2
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.72.2
unknown
Dependencies (14)
+ 6 more
Changelog
Compare changes
|
|
0.72.1
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.72.1
unknown
Dependencies (14)
+ 6 more
Changelog
Compare changes
|
|
0.72.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.72.0
unknown
Dependencies (14)
+ 6 more
Changelog
Compare changes
|
|
0.71.1
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.71.1
unknown
Dependencies (14)
+ 6 more
Changelog
Compare changes
|
|
0.71.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.71.0
unknown
Dependencies (14)
+ 6 more
Changelog
Compare changes
|
|
0.70.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.70.0
unknown
Dependencies (14)
+ 6 more
Changelog
Compare changes
|
|
0.69.0
unknown
4 CVEs
CVE-2026-33241
GHSA-pp9r-xg4c-8j4x
Mar 19, 2026
Salvo Affected by Denial of Service via Unbounded Memory Allocation in Form Data Parsing
High
Network
Low
None
None
SummarySalvo's form data parsing implementations ( DetailsVulnerability DescriptionThree attack vectors exist in Salvo's form handling:
Root CauseThe PoC
ImpactImmediate Effects
Attack Characteristics
Real-World Scenarios
Suggestion: Make Multipart File Upload Handling Explicit Opt-InProblem StatementCurrently, Salvo's multipart form data parsing automatically handles file uploads without explicit developer intent. This creates several security and usability concerns:
Fixed in
0.89.3
References Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-33242
GHSA-f842-phm9-p4v4
Mar 19, 2026
Salvo has a Path Traversal in salvo-proxy::encode_url_path allows API Gateway Bypass
7.5
/ 10
High
Network
Low
None
None
Unchanged
High
None
None
DetailsA Path Traversal and Access Control Bypass vulnerability was discovered in the salvo-proxy component of the Salvo Rust framework (v0.89.2). The vulnerability allows an unauthenticated external attacker to bypass proxy routing constraints and access unintended backend paths (e.g., protected endpoints or administrative dashboards). This issue stems from the encode_url_path function, which fails to normalize "../" sequences and inadvertently forwards them verbatim to the upstream server by not re-encoding the "." character. Technical DetailsIf someone tries to attack by sending a special code like
PoC1 - Setup an Nginx Backend Server for example 2 - Start Salvo Proxy Gateway in other port routing to /api/ 3 - Run the curl to test the bypass:
ImpactIf attackers take advantage of this problem, they can get past API Gateway security checks and route limits without logging in. This could accidentally make internal services, admin pages, or folders visible. The attack works because the special path is sent as-is to the backend, which often happens in systems that follow standard web address rules. Attackers might also use different ways of writing URLs or add extra parts to the web address to get past simple security checks that only look for exact RemediationInstead of changing the text of the path manually, the proxy should use a standard way to clean up the path according to RFC 3986 before adding it to the main URL. It is better to use a trusted tool like the URL crate to join paths, or to block any path parts with “..” after decoding them. But a custom implementation maybe looks like:
Vulnerable code introduced in: https://github.com/salvo-rs/salvo/commit/7bac30e6960355c58e358e402072d4a3e5c4e1bb#diff-e319bf7afcb577f7e9f4fb767005072f6335d23f306dd52e8c94f3d222610d02R20 Author: Tomas Illuminati Fixed in
0.89.3
References
Updated Mar 25, 2026 · Source: OSV.dev
CVE-2026-22256
GHSA-rjf8-2wcw-f6mp
Jan 08, 2026
Salvo is vulnerable to reflected XSS in the list_html function
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
As seen here PoChttps://github.com/user-attachments/assets/92a29a67-547b-40a5-af26-f1b0dd332702 Here is the example app, note this doesn’t need an upload feature (e.g to the other reported vulnerability), only the sub-folder is required.
Setup commands:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev
CVE-2026-22257
GHSA-54m3-5fxr-2f3j
Jan 08, 2026
Salvo is vulnerable to stored XSS in the list_html function by uploading files with malicious names
8.8
/ 10
High
Network
Low
None
Required
Changed
High
Low
Low
SummaryThe function DetailsThe vulnerable snippet of code is the following: dir.rs
PoChttps://github.com/user-attachments/assets/1e161e17-f033-4cc4-855b-43fd38ed1be4 Here is the example app we used:
ImpactJavaScript execution, most likely leading to an account takeover, depending on the site's constraint (CSP, etc…). Fixed in
0.88.1
References Updated Feb 03, 2026 · Source: OSV.dev |
0.69.0
unknown
Dependencies (14)
+ 6 more
Changelog
Compare changes
|