Skip to content

Commit b659cc8

Browse files
Rust: Add tests for spurious actix-web connection_info sink models
1 parent 9b72529 commit b659cc8

8 files changed

Lines changed: 1764 additions & 241 deletions

File tree

‎rust/ql/test/query-tests/security/CWE-117/Cargo.lock‎

Lines changed: 406 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎rust/ql/test/query-tests/security/CWE-117/LogInjection.expected‎

Lines changed: 102 additions & 66 deletions
Large diffs are not rendered by default.

‎rust/ql/test/query-tests/security/CWE-117/main.rs‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,3 +150,23 @@ mod axum_tests {
150150
.route("/{a}", get(my_axum_handler_1)); // $ Source=post_handler
151151
}
152152
}
153+
154+
mod actix_tests {
155+
use actix_web::dev::{ConnectionInfo, Payload};
156+
use actix_web::{web, App, FromRequest, HttpRequest};
157+
158+
async fn connection_info_handler(req: HttpRequest) -> &'static str {
159+
// reading the connection info does not log anything
160+
let _ = req.connection_info(); // $ SPURIOUS: Alert[rust/log-injection]=actix
161+
let _ = req.full_url(); // $ SPURIOUS: Alert[rust/log-injection]=actix
162+
let _ = req.url_for("index", ["a"]); // $ SPURIOUS: Alert[rust/log-injection]=actix
163+
let _ = req.url_for_static("index"); // $ SPURIOUS: Alert[rust/log-injection]=actix
164+
let _ = req.resource_map().url_for(&req, "index", ["a"]); // $ SPURIOUS: Alert[rust/log-injection]=actix
165+
let _ = ConnectionInfo::from_request(&req, &mut Payload::None); // $ SPURIOUS: Alert[rust/log-injection]=actix
166+
""
167+
}
168+
169+
fn test_actix() {
170+
let _ = App::new().route("/", web::get().to(connection_info_handler)); // $ Source=actix
171+
}
172+
}

‎rust/ql/test/query-tests/security/CWE-117/options.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ qltest_dependencies:
44
- env_logger = "0.10"
55
- reqwest = { version = "0.12.9", features = ["blocking"] }
66
- axum = { version = "0.8.7" }
7+
- actix-web = { version = "4", default-features = false }

0 commit comments

Comments
 (0)