Swift: Replace a similar additional taint step in another query.

This commit is contained in:
Geoffrey White 2023-08-14 17:15:55 +01:00
Родитель 27bdee8058
Коммит 81b358a711
3 изменённых файлов: 159 добавлений и 58 удалений

Просмотреть файл

@ -128,15 +128,9 @@ private class CleartextStorageDatabaseDefaultBarrier extends CleartextStorageDat
/**
* An additional taint step for cleartext database storage vulnerabilities.
*/
private class CleartextStorageDatabaseArrayAdditionalFlowStep extends CleartextStorageDatabaseAdditionalFlowStep
private class CleartextStorageDatabaseFieldsAdditionalFlowStep extends CleartextStorageDatabaseAdditionalFlowStep
{
override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
// needed until we have proper content flow through arrays.
exists(ArrayExpr arr |
nodeFrom.asExpr() = arr.getAnElement() and
nodeTo.asExpr() = arr
)
or
// if an object is sensitive, its fields are always sensitive
// (this is needed because the sensitive data sources are in a sense
// approximate; for example we might identify `passwordBox` as a source,

Просмотреть файл

@ -39,6 +39,11 @@ module CleartextStorageDatabaseConfig implements DataFlow::ConfigSig {
cx.asNominalTypeDecl() = d and
c.getAReadContent().(DataFlow::Content::FieldContent).getField() = cx.getAMember()
)
or
// flow out from array elements of at the sink,
// for example in `database.allStatements(sql: "", arguments: [sensitive])`.
isSink(node) and
c.getAReadContent() instanceof DataFlow::Content::ArrayContent
}
}

Просмотреть файл

@ -114,57 +114,108 @@ edges
| testCoreData.swift:91:10:91:10 | passwd | testCoreData.swift:95:15:95:15 | x |
| testCoreData.swift:92:10:92:10 | passwd | testCoreData.swift:96:15:96:15 | y |
| testCoreData.swift:93:10:93:10 | passwd | testCoreData.swift:97:15:97:15 | z |
| testGRDB.swift:73:57:73:57 | password | testGRDB.swift:73:56:73:65 | [...] |
| testGRDB.swift:76:43:76:43 | password | testGRDB.swift:76:42:76:51 | [...] |
| testGRDB.swift:81:45:81:45 | password | testGRDB.swift:81:44:81:53 | [...] |
| testGRDB.swift:83:45:83:45 | password | testGRDB.swift:83:44:83:53 | [...] |
| testGRDB.swift:85:45:85:45 | password | testGRDB.swift:85:44:85:53 | [...] |
| testGRDB.swift:87:45:87:45 | password | testGRDB.swift:87:44:87:53 | [...] |
| testGRDB.swift:92:38:92:38 | password | testGRDB.swift:92:37:92:46 | [...] |
| testGRDB.swift:95:37:95:37 | password | testGRDB.swift:95:36:95:45 | [...] |
| testGRDB.swift:100:73:100:73 | password | testGRDB.swift:100:72:100:81 | [...] |
| testGRDB.swift:101:73:101:73 | password | testGRDB.swift:101:72:101:81 | [...] |
| testGRDB.swift:107:53:107:53 | password | testGRDB.swift:107:52:107:61 | [...] |
| testGRDB.swift:109:53:109:53 | password | testGRDB.swift:109:52:109:61 | [...] |
| testGRDB.swift:111:52:111:52 | password | testGRDB.swift:111:51:111:60 | [...] |
| testGRDB.swift:116:48:116:48 | password | testGRDB.swift:116:47:116:56 | [...] |
| testGRDB.swift:118:48:118:48 | password | testGRDB.swift:118:47:118:56 | [...] |
| testGRDB.swift:121:45:121:45 | password | testGRDB.swift:121:44:121:53 | [...] |
| testGRDB.swift:123:45:123:45 | password | testGRDB.swift:123:44:123:53 | [...] |
| testGRDB.swift:126:45:126:45 | password | testGRDB.swift:126:44:126:53 | [...] |
| testGRDB.swift:128:45:128:45 | password | testGRDB.swift:128:44:128:53 | [...] |
| testGRDB.swift:131:45:131:45 | password | testGRDB.swift:131:44:131:53 | [...] |
| testGRDB.swift:133:45:133:45 | password | testGRDB.swift:133:44:133:53 | [...] |
| testGRDB.swift:138:69:138:69 | password | testGRDB.swift:138:68:138:77 | [...] |
| testGRDB.swift:140:69:140:69 | password | testGRDB.swift:140:68:140:77 | [...] |
| testGRDB.swift:143:66:143:66 | password | testGRDB.swift:143:65:143:74 | [...] |
| testGRDB.swift:145:66:145:66 | password | testGRDB.swift:145:65:145:74 | [...] |
| testGRDB.swift:148:66:148:66 | password | testGRDB.swift:148:65:148:74 | [...] |
| testGRDB.swift:150:66:150:66 | password | testGRDB.swift:150:65:150:74 | [...] |
| testGRDB.swift:153:66:153:66 | password | testGRDB.swift:153:65:153:74 | [...] |
| testGRDB.swift:155:66:155:66 | password | testGRDB.swift:155:65:155:74 | [...] |
| testGRDB.swift:160:60:160:60 | password | testGRDB.swift:160:59:160:68 | [...] |
| testGRDB.swift:161:51:161:51 | password | testGRDB.swift:161:50:161:59 | [...] |
| testGRDB.swift:164:60:164:60 | password | testGRDB.swift:164:59:164:68 | [...] |
| testGRDB.swift:165:51:165:51 | password | testGRDB.swift:165:50:165:59 | [...] |
| testGRDB.swift:169:57:169:57 | password | testGRDB.swift:169:56:169:65 | [...] |
| testGRDB.swift:170:48:170:48 | password | testGRDB.swift:170:47:170:56 | [...] |
| testGRDB.swift:173:57:173:57 | password | testGRDB.swift:173:56:173:65 | [...] |
| testGRDB.swift:174:48:174:48 | password | testGRDB.swift:174:47:174:56 | [...] |
| testGRDB.swift:178:57:178:57 | password | testGRDB.swift:178:56:178:65 | [...] |
| testGRDB.swift:179:48:179:48 | password | testGRDB.swift:179:47:179:56 | [...] |
| testGRDB.swift:182:57:182:57 | password | testGRDB.swift:182:56:182:65 | [...] |
| testGRDB.swift:183:48:183:48 | password | testGRDB.swift:183:47:183:56 | [...] |
| testGRDB.swift:187:57:187:57 | password | testGRDB.swift:187:56:187:65 | [...] |
| testGRDB.swift:188:48:188:48 | password | testGRDB.swift:188:47:188:56 | [...] |
| testGRDB.swift:191:57:191:57 | password | testGRDB.swift:191:56:191:65 | [...] |
| testGRDB.swift:192:48:192:48 | password | testGRDB.swift:192:47:192:56 | [...] |
| testGRDB.swift:198:30:198:30 | password | testGRDB.swift:198:29:198:38 | [...] |
| testGRDB.swift:201:24:201:24 | password | testGRDB.swift:201:23:201:32 | [...] |
| testGRDB.swift:206:67:206:67 | password | testGRDB.swift:206:66:206:75 | [...] |
| testGRDB.swift:208:81:208:81 | password | testGRDB.swift:208:80:208:89 | [...] |
| testGRDB.swift:210:85:210:85 | password | testGRDB.swift:210:84:210:93 | [...] |
| testGRDB.swift:212:99:212:99 | password | testGRDB.swift:212:98:212:107 | [...] |
| testGRDB.swift:73:56:73:65 | [...] [Array element] | testGRDB.swift:73:56:73:65 | [...] |
| testGRDB.swift:73:57:73:57 | password | testGRDB.swift:73:56:73:65 | [...] [Array element] |
| testGRDB.swift:76:42:76:51 | [...] [Array element] | testGRDB.swift:76:42:76:51 | [...] |
| testGRDB.swift:76:43:76:43 | password | testGRDB.swift:76:42:76:51 | [...] [Array element] |
| testGRDB.swift:81:44:81:53 | [...] [Array element] | testGRDB.swift:81:44:81:53 | [...] |
| testGRDB.swift:81:45:81:45 | password | testGRDB.swift:81:44:81:53 | [...] [Array element] |
| testGRDB.swift:83:44:83:53 | [...] [Array element] | testGRDB.swift:83:44:83:53 | [...] |
| testGRDB.swift:83:45:83:45 | password | testGRDB.swift:83:44:83:53 | [...] [Array element] |
| testGRDB.swift:85:44:85:53 | [...] [Array element] | testGRDB.swift:85:44:85:53 | [...] |
| testGRDB.swift:85:45:85:45 | password | testGRDB.swift:85:44:85:53 | [...] [Array element] |
| testGRDB.swift:87:44:87:53 | [...] [Array element] | testGRDB.swift:87:44:87:53 | [...] |
| testGRDB.swift:87:45:87:45 | password | testGRDB.swift:87:44:87:53 | [...] [Array element] |
| testGRDB.swift:92:37:92:46 | [...] [Array element] | testGRDB.swift:92:37:92:46 | [...] |
| testGRDB.swift:92:38:92:38 | password | testGRDB.swift:92:37:92:46 | [...] [Array element] |
| testGRDB.swift:95:36:95:45 | [...] [Array element] | testGRDB.swift:95:36:95:45 | [...] |
| testGRDB.swift:95:37:95:37 | password | testGRDB.swift:95:36:95:45 | [...] [Array element] |
| testGRDB.swift:100:72:100:81 | [...] [Array element] | testGRDB.swift:100:72:100:81 | [...] |
| testGRDB.swift:100:73:100:73 | password | testGRDB.swift:100:72:100:81 | [...] [Array element] |
| testGRDB.swift:101:72:101:81 | [...] [Array element] | testGRDB.swift:101:72:101:81 | [...] |
| testGRDB.swift:101:73:101:73 | password | testGRDB.swift:101:72:101:81 | [...] [Array element] |
| testGRDB.swift:107:52:107:61 | [...] [Array element] | testGRDB.swift:107:52:107:61 | [...] |
| testGRDB.swift:107:53:107:53 | password | testGRDB.swift:107:52:107:61 | [...] [Array element] |
| testGRDB.swift:109:52:109:61 | [...] [Array element] | testGRDB.swift:109:52:109:61 | [...] |
| testGRDB.swift:109:53:109:53 | password | testGRDB.swift:109:52:109:61 | [...] [Array element] |
| testGRDB.swift:111:51:111:60 | [...] [Array element] | testGRDB.swift:111:51:111:60 | [...] |
| testGRDB.swift:111:52:111:52 | password | testGRDB.swift:111:51:111:60 | [...] [Array element] |
| testGRDB.swift:116:47:116:56 | [...] [Array element] | testGRDB.swift:116:47:116:56 | [...] |
| testGRDB.swift:116:48:116:48 | password | testGRDB.swift:116:47:116:56 | [...] [Array element] |
| testGRDB.swift:118:47:118:56 | [...] [Array element] | testGRDB.swift:118:47:118:56 | [...] |
| testGRDB.swift:118:48:118:48 | password | testGRDB.swift:118:47:118:56 | [...] [Array element] |
| testGRDB.swift:121:44:121:53 | [...] [Array element] | testGRDB.swift:121:44:121:53 | [...] |
| testGRDB.swift:121:45:121:45 | password | testGRDB.swift:121:44:121:53 | [...] [Array element] |
| testGRDB.swift:123:44:123:53 | [...] [Array element] | testGRDB.swift:123:44:123:53 | [...] |
| testGRDB.swift:123:45:123:45 | password | testGRDB.swift:123:44:123:53 | [...] [Array element] |
| testGRDB.swift:126:44:126:53 | [...] [Array element] | testGRDB.swift:126:44:126:53 | [...] |
| testGRDB.swift:126:45:126:45 | password | testGRDB.swift:126:44:126:53 | [...] [Array element] |
| testGRDB.swift:128:44:128:53 | [...] [Array element] | testGRDB.swift:128:44:128:53 | [...] |
| testGRDB.swift:128:45:128:45 | password | testGRDB.swift:128:44:128:53 | [...] [Array element] |
| testGRDB.swift:131:44:131:53 | [...] [Array element] | testGRDB.swift:131:44:131:53 | [...] |
| testGRDB.swift:131:45:131:45 | password | testGRDB.swift:131:44:131:53 | [...] [Array element] |
| testGRDB.swift:133:44:133:53 | [...] [Array element] | testGRDB.swift:133:44:133:53 | [...] |
| testGRDB.swift:133:45:133:45 | password | testGRDB.swift:133:44:133:53 | [...] [Array element] |
| testGRDB.swift:138:68:138:77 | [...] [Array element] | testGRDB.swift:138:68:138:77 | [...] |
| testGRDB.swift:138:69:138:69 | password | testGRDB.swift:138:68:138:77 | [...] [Array element] |
| testGRDB.swift:140:68:140:77 | [...] [Array element] | testGRDB.swift:140:68:140:77 | [...] |
| testGRDB.swift:140:69:140:69 | password | testGRDB.swift:140:68:140:77 | [...] [Array element] |
| testGRDB.swift:143:65:143:74 | [...] [Array element] | testGRDB.swift:143:65:143:74 | [...] |
| testGRDB.swift:143:66:143:66 | password | testGRDB.swift:143:65:143:74 | [...] [Array element] |
| testGRDB.swift:145:65:145:74 | [...] [Array element] | testGRDB.swift:145:65:145:74 | [...] |
| testGRDB.swift:145:66:145:66 | password | testGRDB.swift:145:65:145:74 | [...] [Array element] |
| testGRDB.swift:148:65:148:74 | [...] [Array element] | testGRDB.swift:148:65:148:74 | [...] |
| testGRDB.swift:148:66:148:66 | password | testGRDB.swift:148:65:148:74 | [...] [Array element] |
| testGRDB.swift:150:65:150:74 | [...] [Array element] | testGRDB.swift:150:65:150:74 | [...] |
| testGRDB.swift:150:66:150:66 | password | testGRDB.swift:150:65:150:74 | [...] [Array element] |
| testGRDB.swift:153:65:153:74 | [...] [Array element] | testGRDB.swift:153:65:153:74 | [...] |
| testGRDB.swift:153:66:153:66 | password | testGRDB.swift:153:65:153:74 | [...] [Array element] |
| testGRDB.swift:155:65:155:74 | [...] [Array element] | testGRDB.swift:155:65:155:74 | [...] |
| testGRDB.swift:155:66:155:66 | password | testGRDB.swift:155:65:155:74 | [...] [Array element] |
| testGRDB.swift:160:59:160:68 | [...] [Array element] | testGRDB.swift:160:59:160:68 | [...] |
| testGRDB.swift:160:60:160:60 | password | testGRDB.swift:160:59:160:68 | [...] [Array element] |
| testGRDB.swift:161:50:161:59 | [...] [Array element] | testGRDB.swift:161:50:161:59 | [...] |
| testGRDB.swift:161:51:161:51 | password | testGRDB.swift:161:50:161:59 | [...] [Array element] |
| testGRDB.swift:164:59:164:68 | [...] [Array element] | testGRDB.swift:164:59:164:68 | [...] |
| testGRDB.swift:164:60:164:60 | password | testGRDB.swift:164:59:164:68 | [...] [Array element] |
| testGRDB.swift:165:50:165:59 | [...] [Array element] | testGRDB.swift:165:50:165:59 | [...] |
| testGRDB.swift:165:51:165:51 | password | testGRDB.swift:165:50:165:59 | [...] [Array element] |
| testGRDB.swift:169:56:169:65 | [...] [Array element] | testGRDB.swift:169:56:169:65 | [...] |
| testGRDB.swift:169:57:169:57 | password | testGRDB.swift:169:56:169:65 | [...] [Array element] |
| testGRDB.swift:170:47:170:56 | [...] [Array element] | testGRDB.swift:170:47:170:56 | [...] |
| testGRDB.swift:170:48:170:48 | password | testGRDB.swift:170:47:170:56 | [...] [Array element] |
| testGRDB.swift:173:56:173:65 | [...] [Array element] | testGRDB.swift:173:56:173:65 | [...] |
| testGRDB.swift:173:57:173:57 | password | testGRDB.swift:173:56:173:65 | [...] [Array element] |
| testGRDB.swift:174:47:174:56 | [...] [Array element] | testGRDB.swift:174:47:174:56 | [...] |
| testGRDB.swift:174:48:174:48 | password | testGRDB.swift:174:47:174:56 | [...] [Array element] |
| testGRDB.swift:178:56:178:65 | [...] [Array element] | testGRDB.swift:178:56:178:65 | [...] |
| testGRDB.swift:178:57:178:57 | password | testGRDB.swift:178:56:178:65 | [...] [Array element] |
| testGRDB.swift:179:47:179:56 | [...] [Array element] | testGRDB.swift:179:47:179:56 | [...] |
| testGRDB.swift:179:48:179:48 | password | testGRDB.swift:179:47:179:56 | [...] [Array element] |
| testGRDB.swift:182:56:182:65 | [...] [Array element] | testGRDB.swift:182:56:182:65 | [...] |
| testGRDB.swift:182:57:182:57 | password | testGRDB.swift:182:56:182:65 | [...] [Array element] |
| testGRDB.swift:183:47:183:56 | [...] [Array element] | testGRDB.swift:183:47:183:56 | [...] |
| testGRDB.swift:183:48:183:48 | password | testGRDB.swift:183:47:183:56 | [...] [Array element] |
| testGRDB.swift:187:56:187:65 | [...] [Array element] | testGRDB.swift:187:56:187:65 | [...] |
| testGRDB.swift:187:57:187:57 | password | testGRDB.swift:187:56:187:65 | [...] [Array element] |
| testGRDB.swift:188:47:188:56 | [...] [Array element] | testGRDB.swift:188:47:188:56 | [...] |
| testGRDB.swift:188:48:188:48 | password | testGRDB.swift:188:47:188:56 | [...] [Array element] |
| testGRDB.swift:191:56:191:65 | [...] [Array element] | testGRDB.swift:191:56:191:65 | [...] |
| testGRDB.swift:191:57:191:57 | password | testGRDB.swift:191:56:191:65 | [...] [Array element] |
| testGRDB.swift:192:47:192:56 | [...] [Array element] | testGRDB.swift:192:47:192:56 | [...] |
| testGRDB.swift:192:48:192:48 | password | testGRDB.swift:192:47:192:56 | [...] [Array element] |
| testGRDB.swift:198:29:198:38 | [...] [Array element] | testGRDB.swift:198:29:198:38 | [...] |
| testGRDB.swift:198:30:198:30 | password | testGRDB.swift:198:29:198:38 | [...] [Array element] |
| testGRDB.swift:201:23:201:32 | [...] [Array element] | testGRDB.swift:201:23:201:32 | [...] |
| testGRDB.swift:201:24:201:24 | password | testGRDB.swift:201:23:201:32 | [...] [Array element] |
| testGRDB.swift:206:66:206:75 | [...] [Array element] | testGRDB.swift:206:66:206:75 | [...] |
| testGRDB.swift:206:67:206:67 | password | testGRDB.swift:206:66:206:75 | [...] [Array element] |
| testGRDB.swift:208:80:208:89 | [...] [Array element] | testGRDB.swift:208:80:208:89 | [...] |
| testGRDB.swift:208:81:208:81 | password | testGRDB.swift:208:80:208:89 | [...] [Array element] |
| testGRDB.swift:210:84:210:93 | [...] [Array element] | testGRDB.swift:210:84:210:93 | [...] |
| testGRDB.swift:210:85:210:85 | password | testGRDB.swift:210:84:210:93 | [...] [Array element] |
| testGRDB.swift:212:98:212:107 | [...] [Array element] | testGRDB.swift:212:98:212:107 | [...] |
| testGRDB.swift:212:99:212:99 | password | testGRDB.swift:212:98:212:107 | [...] [Array element] |
| testRealm.swift:27:6:27:6 | value | file://:0:0:0:0 | value |
| testRealm.swift:34:6:34:6 | value | file://:0:0:0:0 | value |
| testRealm.swift:41:2:41:2 | [post] a [data] | testRealm.swift:41:2:41:2 | [post] a |
@ -326,106 +377,157 @@ nodes
| testCoreData.swift:96:15:96:15 | y | semmle.label | y |
| testCoreData.swift:97:15:97:15 | z | semmle.label | z |
| testGRDB.swift:73:56:73:65 | [...] | semmle.label | [...] |
| testGRDB.swift:73:56:73:65 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:73:57:73:57 | password | semmle.label | password |
| testGRDB.swift:76:42:76:51 | [...] | semmle.label | [...] |
| testGRDB.swift:76:42:76:51 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:76:43:76:43 | password | semmle.label | password |
| testGRDB.swift:81:44:81:53 | [...] | semmle.label | [...] |
| testGRDB.swift:81:44:81:53 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:81:45:81:45 | password | semmle.label | password |
| testGRDB.swift:83:44:83:53 | [...] | semmle.label | [...] |
| testGRDB.swift:83:44:83:53 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:83:45:83:45 | password | semmle.label | password |
| testGRDB.swift:85:44:85:53 | [...] | semmle.label | [...] |
| testGRDB.swift:85:44:85:53 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:85:45:85:45 | password | semmle.label | password |
| testGRDB.swift:87:44:87:53 | [...] | semmle.label | [...] |
| testGRDB.swift:87:44:87:53 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:87:45:87:45 | password | semmle.label | password |
| testGRDB.swift:92:37:92:46 | [...] | semmle.label | [...] |
| testGRDB.swift:92:37:92:46 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:92:38:92:38 | password | semmle.label | password |
| testGRDB.swift:95:36:95:45 | [...] | semmle.label | [...] |
| testGRDB.swift:95:36:95:45 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:95:37:95:37 | password | semmle.label | password |
| testGRDB.swift:100:72:100:81 | [...] | semmle.label | [...] |
| testGRDB.swift:100:72:100:81 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:100:73:100:73 | password | semmle.label | password |
| testGRDB.swift:101:72:101:81 | [...] | semmle.label | [...] |
| testGRDB.swift:101:72:101:81 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:101:73:101:73 | password | semmle.label | password |
| testGRDB.swift:107:52:107:61 | [...] | semmle.label | [...] |
| testGRDB.swift:107:52:107:61 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:107:53:107:53 | password | semmle.label | password |
| testGRDB.swift:109:52:109:61 | [...] | semmle.label | [...] |
| testGRDB.swift:109:52:109:61 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:109:53:109:53 | password | semmle.label | password |
| testGRDB.swift:111:51:111:60 | [...] | semmle.label | [...] |
| testGRDB.swift:111:51:111:60 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:111:52:111:52 | password | semmle.label | password |
| testGRDB.swift:116:47:116:56 | [...] | semmle.label | [...] |
| testGRDB.swift:116:47:116:56 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:116:48:116:48 | password | semmle.label | password |
| testGRDB.swift:118:47:118:56 | [...] | semmle.label | [...] |
| testGRDB.swift:118:47:118:56 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:118:48:118:48 | password | semmle.label | password |
| testGRDB.swift:121:44:121:53 | [...] | semmle.label | [...] |
| testGRDB.swift:121:44:121:53 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:121:45:121:45 | password | semmle.label | password |
| testGRDB.swift:123:44:123:53 | [...] | semmle.label | [...] |
| testGRDB.swift:123:44:123:53 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:123:45:123:45 | password | semmle.label | password |
| testGRDB.swift:126:44:126:53 | [...] | semmle.label | [...] |
| testGRDB.swift:126:44:126:53 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:126:45:126:45 | password | semmle.label | password |
| testGRDB.swift:128:44:128:53 | [...] | semmle.label | [...] |
| testGRDB.swift:128:44:128:53 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:128:45:128:45 | password | semmle.label | password |
| testGRDB.swift:131:44:131:53 | [...] | semmle.label | [...] |
| testGRDB.swift:131:44:131:53 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:131:45:131:45 | password | semmle.label | password |
| testGRDB.swift:133:44:133:53 | [...] | semmle.label | [...] |
| testGRDB.swift:133:44:133:53 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:133:45:133:45 | password | semmle.label | password |
| testGRDB.swift:138:68:138:77 | [...] | semmle.label | [...] |
| testGRDB.swift:138:68:138:77 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:138:69:138:69 | password | semmle.label | password |
| testGRDB.swift:140:68:140:77 | [...] | semmle.label | [...] |
| testGRDB.swift:140:68:140:77 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:140:69:140:69 | password | semmle.label | password |
| testGRDB.swift:143:65:143:74 | [...] | semmle.label | [...] |
| testGRDB.swift:143:65:143:74 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:143:66:143:66 | password | semmle.label | password |
| testGRDB.swift:145:65:145:74 | [...] | semmle.label | [...] |
| testGRDB.swift:145:65:145:74 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:145:66:145:66 | password | semmle.label | password |
| testGRDB.swift:148:65:148:74 | [...] | semmle.label | [...] |
| testGRDB.swift:148:65:148:74 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:148:66:148:66 | password | semmle.label | password |
| testGRDB.swift:150:65:150:74 | [...] | semmle.label | [...] |
| testGRDB.swift:150:65:150:74 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:150:66:150:66 | password | semmle.label | password |
| testGRDB.swift:153:65:153:74 | [...] | semmle.label | [...] |
| testGRDB.swift:153:65:153:74 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:153:66:153:66 | password | semmle.label | password |
| testGRDB.swift:155:65:155:74 | [...] | semmle.label | [...] |
| testGRDB.swift:155:65:155:74 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:155:66:155:66 | password | semmle.label | password |
| testGRDB.swift:160:59:160:68 | [...] | semmle.label | [...] |
| testGRDB.swift:160:59:160:68 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:160:60:160:60 | password | semmle.label | password |
| testGRDB.swift:161:50:161:59 | [...] | semmle.label | [...] |
| testGRDB.swift:161:50:161:59 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:161:51:161:51 | password | semmle.label | password |
| testGRDB.swift:164:59:164:68 | [...] | semmle.label | [...] |
| testGRDB.swift:164:59:164:68 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:164:60:164:60 | password | semmle.label | password |
| testGRDB.swift:165:50:165:59 | [...] | semmle.label | [...] |
| testGRDB.swift:165:50:165:59 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:165:51:165:51 | password | semmle.label | password |
| testGRDB.swift:169:56:169:65 | [...] | semmle.label | [...] |
| testGRDB.swift:169:56:169:65 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:169:57:169:57 | password | semmle.label | password |
| testGRDB.swift:170:47:170:56 | [...] | semmle.label | [...] |
| testGRDB.swift:170:47:170:56 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:170:48:170:48 | password | semmle.label | password |
| testGRDB.swift:173:56:173:65 | [...] | semmle.label | [...] |
| testGRDB.swift:173:56:173:65 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:173:57:173:57 | password | semmle.label | password |
| testGRDB.swift:174:47:174:56 | [...] | semmle.label | [...] |
| testGRDB.swift:174:47:174:56 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:174:48:174:48 | password | semmle.label | password |
| testGRDB.swift:178:56:178:65 | [...] | semmle.label | [...] |
| testGRDB.swift:178:56:178:65 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:178:57:178:57 | password | semmle.label | password |
| testGRDB.swift:179:47:179:56 | [...] | semmle.label | [...] |
| testGRDB.swift:179:47:179:56 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:179:48:179:48 | password | semmle.label | password |
| testGRDB.swift:182:56:182:65 | [...] | semmle.label | [...] |
| testGRDB.swift:182:56:182:65 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:182:57:182:57 | password | semmle.label | password |
| testGRDB.swift:183:47:183:56 | [...] | semmle.label | [...] |
| testGRDB.swift:183:47:183:56 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:183:48:183:48 | password | semmle.label | password |
| testGRDB.swift:187:56:187:65 | [...] | semmle.label | [...] |
| testGRDB.swift:187:56:187:65 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:187:57:187:57 | password | semmle.label | password |
| testGRDB.swift:188:47:188:56 | [...] | semmle.label | [...] |
| testGRDB.swift:188:47:188:56 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:188:48:188:48 | password | semmle.label | password |
| testGRDB.swift:191:56:191:65 | [...] | semmle.label | [...] |
| testGRDB.swift:191:56:191:65 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:191:57:191:57 | password | semmle.label | password |
| testGRDB.swift:192:47:192:56 | [...] | semmle.label | [...] |
| testGRDB.swift:192:47:192:56 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:192:48:192:48 | password | semmle.label | password |
| testGRDB.swift:198:29:198:38 | [...] | semmle.label | [...] |
| testGRDB.swift:198:29:198:38 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:198:30:198:30 | password | semmle.label | password |
| testGRDB.swift:201:23:201:32 | [...] | semmle.label | [...] |
| testGRDB.swift:201:23:201:32 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:201:24:201:24 | password | semmle.label | password |
| testGRDB.swift:206:66:206:75 | [...] | semmle.label | [...] |
| testGRDB.swift:206:66:206:75 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:206:67:206:67 | password | semmle.label | password |
| testGRDB.swift:208:80:208:89 | [...] | semmle.label | [...] |
| testGRDB.swift:208:80:208:89 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:208:81:208:81 | password | semmle.label | password |
| testGRDB.swift:210:84:210:93 | [...] | semmle.label | [...] |
| testGRDB.swift:210:84:210:93 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:210:85:210:85 | password | semmle.label | password |
| testGRDB.swift:212:98:212:107 | [...] | semmle.label | [...] |
| testGRDB.swift:212:98:212:107 | [...] [Array element] | semmle.label | [...] [Array element] |
| testGRDB.swift:212:99:212:99 | password | semmle.label | password |
| testRealm.swift:27:6:27:6 | value | semmle.label | value |
| testRealm.swift:34:6:34:6 | value | semmle.label | value |