Skip to content

Commit 8624f9c

Browse files
authored
Merge pull request #20749 from github/copilot/add-secure-cookie-test-cases
Add test coverage for actix-web, poem, and http-types cookie secure attribute
2 parents eda2390 + 1e7acc5 commit 8624f9c

File tree

8 files changed

+3336
-559
lines changed

8 files changed

+3336
-559
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: minorAnalysis
3+
---
4+
* Added models for cookie methods in the `poem` crate.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/rust-all
4+
extensible: sinkModel
5+
data:
6+
- ["<poem::web::cookie::CookieJar>::add", "Argument[0]", "cookie-use", "manual"]
7+
- ["<poem::web::cookie::SignedCookieJar>::add", "Argument[0]", "cookie-use", "manual"]
8+
- ["<poem::web::cookie::PrivateCookieJar>::add", "Argument[0]", "cookie-use", "manual"]
9+
- ["<poem::session::server_session::ServerSession>::new", "Argument[0]", "cookie-use", "manual"]
10+
- addsTo:
11+
pack: codeql/rust-all
12+
extensible: summaryModel
13+
data:
14+
- ["<poem::web::cookie::Cookie>::set_secure", "Argument[self].OptionalBarrier[cookie-secure-arg0]", "Argument[self]", "taint", "manual"]
15+
- ["<poem::session::cookie_config::CookieConfig>::secure", "Argument[self].OptionalBarrier[cookie-secure-arg0]", "ReturnValue", "taint", "manual"]
16+
- ["<poem::session::cookie_config::CookieConfig>::partitioned", "Argument[self].OptionalBarrier[cookie-partitioned-arg0]", "ReturnValue", "taint", "manual"]
17+
- ["<poem::session::cookie_config::CookieConfig>::name", "Argument[self]", "ReturnValue", "taint", "manual"]
18+
- ["<poem::session::cookie_config::CookieConfig>::path", "Argument[self]", "ReturnValue", "taint", "manual"]
19+
- ["<poem::session::cookie_config::CookieConfig>::domain", "Argument[self]", "ReturnValue", "taint", "manual"]
20+
- ["<poem::session::cookie_config::CookieConfig>::http_only", "Argument[self]", "ReturnValue", "taint", "manual"]
21+
- ["<poem::session::cookie_config::CookieConfig>::same_site", "Argument[self]", "ReturnValue", "taint", "manual"]
22+
- ["<poem::session::cookie_config::CookieConfig>::max_age", "Argument[self]", "ReturnValue", "taint", "manual"]

rust/ql/src/queries/security/CWE-614/InsecureCookie.ql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ module InsecureCookieConfig implements DataFlow::ConfigSig {
3939
node instanceof Sink
4040
}
4141

42-
predicate isBarrier(DataFlow::Node node) {
43-
// setting the 'secure' attribute to true
44-
cookieSetNode(node, "secure", true)
42+
predicate isBarrierIn(DataFlow::Node node) {
43+
// setting the 'secure' attribute
44+
cookieSetNode(node, "secure", _)
4545
or
4646
node instanceof Barrier
4747
}

0 commit comments

Comments
 (0)