Bug fix: Another traversal bug. This time /..%2F

This commit is contained in:
int 80h
2022-02-09 21:50:18 -05:00
parent 406fea7b6c
commit eb129467f1
4 changed files with 13 additions and 3 deletions

2
Cargo.lock generated
View File

@@ -186,7 +186,7 @@ dependencies = [
[[package]]
name = "gemserv"
version = "0.6.4"
version = "0.6.5"
dependencies = [
"futures-util",
"log",

View File

@@ -1,6 +1,6 @@
[package]
name = "gemserv"
version = "0.6.4"
version = "0.6.5"
authors = ["int 80h <int@80h.dev>"]
edition = "2018"
description = "A gemini server"

6
README
View File

@@ -78,6 +78,10 @@ TLS variables
## Changelog
### [0.6.5] - 20220209
Bug fix: Another traversal bug.
### [0.6.4] - 20220202
Fixed a file system traversal bug. All previous versions are unsafe.
Fixed a file system traversal bug. All previous versions are unsafe.

View File

@@ -177,6 +177,12 @@ async fn get_request(mut con: conn::Connection) -> Result<(conn::Connection, url
request.pop();
}
}
if request.contains("..") {
logger::logger(con.peer_addr, Status::BadRequest, &request);
con.send_status(Status::BadRequest, None).await?;
return Err(Box::new(GemError("Contained ..".into())));
}
let url = match Url::parse(&request) {
Ok(url) => url,