Skip to content

Commit c1a95d5

Browse files
committed
Swift: Add some test cases.
1 parent 76f8d46 commit c1a95d5

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

swift/ql/test/query-tests/Security/CWE-757/InsecureTLS.expected

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ edges
2424
| InsecureTLS.swift:165:47:165:47 | def [TLSVersion] : | InsecureTLS.swift:165:47:165:51 | .TLSVersion |
2525
| InsecureTLS.swift:165:47:165:47 | def [TLSVersion] : | InsecureTLS.swift:165:47:165:51 | .TLSVersion : |
2626
| InsecureTLS.swift:165:47:165:51 | .TLSVersion : | InsecureTLS.swift:19:7:19:7 | value : |
27+
| InsecureTLS.swift:181:53:181:76 | .TLSv10 : | InsecureTLS.swift:19:7:19:7 | value : |
28+
| InsecureTLS.swift:185:20:185:36 | withMinVersion : | InsecureTLS.swift:187:42:187:42 | withMinVersion |
29+
| InsecureTLS.swift:193:51:193:74 | .TLSv10 : | InsecureTLS.swift:185:20:185:36 | withMinVersion : |
2730
| file://:0:0:0:0 | self [TLSVersion] : | file://:0:0:0:0 | .TLSVersion : |
2831
| file://:0:0:0:0 | value : | file://:0:0:0:0 | [post] self [TLSVersion] : |
2932
nodes
@@ -55,6 +58,11 @@ nodes
5558
| InsecureTLS.swift:165:47:165:47 | def [TLSVersion] : | semmle.label | def [TLSVersion] : |
5659
| InsecureTLS.swift:165:47:165:51 | .TLSVersion | semmle.label | .TLSVersion |
5760
| InsecureTLS.swift:165:47:165:51 | .TLSVersion : | semmle.label | .TLSVersion : |
61+
| InsecureTLS.swift:181:53:181:76 | .TLSv10 | semmle.label | .TLSv10 |
62+
| InsecureTLS.swift:181:53:181:76 | .TLSv10 : | semmle.label | .TLSv10 : |
63+
| InsecureTLS.swift:185:20:185:36 | withMinVersion : | semmle.label | withMinVersion : |
64+
| InsecureTLS.swift:187:42:187:42 | withMinVersion | semmle.label | withMinVersion |
65+
| InsecureTLS.swift:193:51:193:74 | .TLSv10 : | semmle.label | .TLSv10 : |
5866
| file://:0:0:0:0 | .TLSVersion : | semmle.label | .TLSVersion : |
5967
| file://:0:0:0:0 | [post] self [TLSVersion] : | semmle.label | [post] self [TLSVersion] : |
6068
| file://:0:0:0:0 | self [TLSVersion] : | semmle.label | self [TLSVersion] : |
@@ -76,6 +84,8 @@ subpaths
7684
| InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | InsecureTLS.swift:102:10:102:33 | .TLSv10 : | InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | This TLS configuration is insecure. |
7785
| InsecureTLS.swift:122:47:122:47 | version | InsecureTLS.swift:127:25:127:48 | .TLSv11 : | InsecureTLS.swift:122:47:122:47 | version | This TLS configuration is insecure. |
7886
| InsecureTLS.swift:165:47:165:51 | .TLSVersion | InsecureTLS.swift:163:20:163:43 | .TLSv10 : | InsecureTLS.swift:165:47:165:51 | .TLSVersion | This TLS configuration is insecure. |
87+
| InsecureTLS.swift:181:53:181:76 | .TLSv10 | InsecureTLS.swift:181:53:181:76 | .TLSv10 | InsecureTLS.swift:181:53:181:76 | .TLSv10 | This TLS configuration is insecure. |
88+
| InsecureTLS.swift:187:42:187:42 | withMinVersion | InsecureTLS.swift:193:51:193:74 | .TLSv10 : | InsecureTLS.swift:187:42:187:42 | withMinVersion | This TLS configuration is insecure. |
7989
| file://:0:0:0:0 | value | InsecureTLS.swift:40:47:40:70 | .TLSv10 : | file://:0:0:0:0 | value | This TLS configuration is insecure. |
8090
| file://:0:0:0:0 | value | InsecureTLS.swift:45:47:45:70 | .TLSv11 : | file://:0:0:0:0 | value | This TLS configuration is insecure. |
8191
| file://:0:0:0:0 | value | InsecureTLS.swift:57:47:57:70 | .TLSv10 : | file://:0:0:0:0 | value | This TLS configuration is insecure. |
@@ -84,3 +94,4 @@ subpaths
8494
| file://:0:0:0:0 | value | InsecureTLS.swift:102:10:102:33 | .TLSv10 : | file://:0:0:0:0 | value | This TLS configuration is insecure. |
8595
| file://:0:0:0:0 | value | InsecureTLS.swift:127:25:127:48 | .TLSv11 : | file://:0:0:0:0 | value | This TLS configuration is insecure. |
8696
| file://:0:0:0:0 | value | InsecureTLS.swift:163:20:163:43 | .TLSv10 : | file://:0:0:0:0 | value | This TLS configuration is insecure. |
97+
| file://:0:0:0:0 | value | InsecureTLS.swift:181:53:181:76 | .TLSv10 : | file://:0:0:0:0 | value | This TLS configuration is insecure. |

swift/ql/test/query-tests/Security/CWE-757/InsecureTLS.swift

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,33 @@ func case_19() {
171171
let config = URLSessionConfiguration()
172172
config.tlsMinimumSupportedProtocolVersion = def.TLSVersion // GOOD
173173
}
174+
175+
class MyClass {
176+
var config = URLSessionConfiguration()
177+
}
178+
179+
func case_20(myObj: MyClass) {
180+
myObj.config.tlsMinimumSupportedProtocolVersion = tls_protocol_version_t.TLSv13 // GOOD
181+
myObj.config.tlsMinimumSupportedProtocolVersion = tls_protocol_version_t.TLSv10 // BAD
182+
}
183+
184+
extension URLSessionConfiguration {
185+
convenience init(withMinVersion: tls_protocol_version_t) {
186+
self.init()
187+
tlsMinimumSupportedProtocolVersion = withMinVersion
188+
}
189+
}
190+
191+
func case_21() {
192+
let _ = URLSessionConfiguration(withMinVersion: tls_protocol_version_t.TLSv13) // GOOD
193+
let _ = URLSessionConfiguration(withMinVersion: tls_protocol_version_t.TLSv10) // BAD
194+
}
195+
196+
func setVersion(version: inout tls_protocol_version_t, value: tls_protocol_version_t) {
197+
version = value
198+
}
199+
200+
func case_22(config: URLSessionConfiguration) {
201+
setVersion(version: &config.tlsMinimumSupportedProtocolVersion, value: tls_protocol_version_t.TLSv13) // GOOD
202+
setVersion(version: &config.tlsMinimumSupportedProtocolVersion, value: tls_protocol_version_t.TLSv10) // BAD [NOT DETECTED]
203+
}

0 commit comments

Comments
 (0)