Python: Fix results outside DB for CleartextLogging

This commit is contained in:
Rasmus Wriedt Larsen
2022-11-01 16:36:31 +01:00
parent 0a41d8d2c1
commit a301c93ebf
3 changed files with 39 additions and 108 deletions

View File

@@ -57,16 +57,43 @@ module CleartextLogging {
/** A piece of data printed, considered as a flow sink. */
class PrintedDataAsSink extends Sink {
PrintedDataAsSink() {
this = API::builtin("print").getACall().getArg(_)
or
// special handling of writing to `sys.stdout` and `sys.stderr`, which is
// essentially the same as printing
this =
API::moduleImport("sys")
.getMember(["stdout", "stderr"])
.getMember("write")
.getACall()
.getArg(0)
(
this = API::builtin("print").getACall().getArg(_)
or
// special handling of writing to `sys.stdout` and `sys.stderr`, which is
// essentially the same as printing
this =
API::moduleImport("sys")
.getMember(["stdout", "stderr"])
.getMember("write")
.getACall()
.getArg(0)
) and
// since some of the inner error handling implementation of the logging module is
// ```py
// sys.stderr.write('Message: %r\n'
// 'Arguments: %s\n' % (record.msg,
// record.args))
// ```
// any time we would report flow to such a logging sink, we can ALSO report
// the flow to the `record.msg`/`record.args` sinks -- obviously we
// don't want that.
//
// However, simply removing taint edges out of a sink is not a good enough solution,
// since we would only flag one of the `logging.info` calls in the following example
// due to use-use flow
// ```py
// logging.info(user_controlled)
// logging.info(user_controlled)
// ```
//
// The same approach is used in the command injection query.
not exists(Module loggingInit |
loggingInit.getName() = "logging.__init__" and
this.getScope().getEnclosingModule() = loggingInit and
// do allow this call if we're analyzing logging/__init__.py as part of CPython though
not exists(loggingInit.getFile().getRelativePath())
)
}
}
}

View File

@@ -77,7 +77,8 @@ module CommandInjection {
// https://github.com/python/cpython/blob/fa7ce080175f65d678a7d5756c94f82887fc9803/Lib/os.py#L974
// https://github.com/python/cpython/blob/fa7ce080175f65d678a7d5756c94f82887fc9803/Lib/subprocess.py#L341
//
// The same approach is used in the path-injection and cleartext-storage queries.
// The same approach is used in the path-injection, cleartext-storage, and
// cleartext-logging queries.
not this.getScope().getEnclosingModule().getName() in [
"os", "subprocess", "platform", "popen2"
]

View File

@@ -1,111 +1,18 @@
edges
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:283:23:283:26 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:310:20:310:23 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:310:20:310:23 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:310:20:310:26 | ControlFlowNode for Subscript |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:310:20:310:26 | ControlFlowNode for Subscript | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:311:21:311:24 | ControlFlowNode for args |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:311:21:311:24 | ControlFlowNode for args | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:311:9:311:12 | [post] ControlFlowNode for self [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:939:22:939:27 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:952:27:952:32 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:952:27:952:32 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1071:20:1071:25 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:952:27:952:32 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1178:20:1178:25 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:989:27:989:32 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1023:59:1023:64 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1022:59:1023:69 | ControlFlowNode for Tuple | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1021:38:1023:70 | ControlFlowNode for BinaryExpr |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1023:59:1023:64 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1023:59:1023:69 | ControlFlowNode for Attribute |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1023:59:1023:69 | ControlFlowNode for Attribute | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1022:59:1023:69 | ControlFlowNode for Tuple |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1071:20:1071:25 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1091:30:1091:35 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1091:30:1091:35 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:989:27:989:32 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1178:20:1178:25 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1187:34:1187:39 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1187:34:1187:39 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1071:20:1071:25 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1424:27:1424:30 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1434:35:1434:38 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1434:35:1434:38 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1565:32:1565:35 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1436:26:1436:29 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1446:34:1446:37 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1446:34:1446:37 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1565:32:1565:35 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1497:32:1497:35 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1512:35:1512:38 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1512:35:1512:38 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1565:32:1565:35 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1550:53:1550:56 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1556:59:1556:62 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1556:14:1557:35 | ControlFlowNode for _logRecordFactory() [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1563:16:1563:17 | ControlFlowNode for rv [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1556:59:1556:62 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:283:23:283:26 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1556:59:1556:62 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1556:14:1557:35 | ControlFlowNode for _logRecordFactory() [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1565:32:1565:35 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1587:66:1587:69 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1587:18:1588:62 | ControlFlowNode for Attribute() [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1589:21:1589:26 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1587:66:1587:69 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1550:53:1550:56 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1587:66:1587:69 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1587:18:1588:62 | ControlFlowNode for Attribute() [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1589:21:1589:26 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1591:22:1591:27 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1591:22:1591:27 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1599:31:1599:36 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1599:31:1599:36 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1645:28:1645:33 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1645:28:1645:33 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1669:39:1669:44 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1669:39:1669:44 | ControlFlowNode for record [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:939:22:939:27 | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2089:16:2089:19 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2097:21:2097:24 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2097:21:2097:24 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1436:26:1436:29 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2099:17:2099:20 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2107:22:2107:25 | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2107:22:2107:25 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1424:27:1424:30 | ControlFlowNode for args [List element] |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:20:48:20:55 | ControlFlowNode for password |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:20:48:20:55 | ControlFlowNode for password |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:22:58:22:65 | ControlFlowNode for password |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:22:58:22:65 | ControlFlowNode for password |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:23:58:23:65 | ControlFlowNode for password |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:23:58:23:65 | ControlFlowNode for password |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:27:40:27:47 | ControlFlowNode for password |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:27:40:27:47 | ControlFlowNode for password |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:30:58:30:65 | ControlFlowNode for password |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:30:58:30:65 | ControlFlowNode for password |
| test.py:20:48:20:55 | ControlFlowNode for password | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2089:16:2089:19 | ControlFlowNode for args [List element] |
| test.py:22:58:22:65 | ControlFlowNode for password | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1497:32:1497:35 | ControlFlowNode for args [List element] |
| test.py:23:58:23:65 | ControlFlowNode for password | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1436:26:1436:29 | ControlFlowNode for args [List element] |
| test.py:27:40:27:47 | ControlFlowNode for password | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1436:26:1436:29 | ControlFlowNode for args [List element] |
| test.py:30:58:30:65 | ControlFlowNode for password | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1436:26:1436:29 | ControlFlowNode for args [List element] |
| test.py:34:30:34:39 | ControlFlowNode for get_cert() | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2099:17:2099:20 | ControlFlowNode for args [List element] |
| test.py:65:14:68:5 | ControlFlowNode for Dict | test.py:69:11:69:31 | ControlFlowNode for Subscript |
| test.py:67:21:67:37 | ControlFlowNode for Attribute | test.py:65:14:68:5 | ControlFlowNode for Dict |
nodes
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:283:23:283:26 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:310:20:310:23 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:310:20:310:26 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:311:9:311:12 | [post] ControlFlowNode for self [Attribute args] | semmle.label | [post] ControlFlowNode for self [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:311:21:311:24 | ControlFlowNode for args | semmle.label | ControlFlowNode for args |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:939:22:939:27 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:952:27:952:32 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:989:27:989:32 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1021:38:1023:70 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1022:59:1023:69 | ControlFlowNode for Tuple | semmle.label | ControlFlowNode for Tuple |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1023:59:1023:64 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1023:59:1023:69 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1071:20:1071:25 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1091:30:1091:35 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1178:20:1178:25 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1187:34:1187:39 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1424:27:1424:30 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1434:35:1434:38 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1436:26:1436:29 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1446:34:1446:37 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1497:32:1497:35 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1512:35:1512:38 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1550:53:1550:56 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1556:14:1557:35 | ControlFlowNode for _logRecordFactory() [Attribute args] | semmle.label | ControlFlowNode for _logRecordFactory() [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1556:59:1556:62 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1563:16:1563:17 | ControlFlowNode for rv [Attribute args] | semmle.label | ControlFlowNode for rv [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1565:32:1565:35 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1587:18:1588:62 | ControlFlowNode for Attribute() [Attribute args] | semmle.label | ControlFlowNode for Attribute() [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1587:66:1587:69 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1589:21:1589:26 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1591:22:1591:27 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1599:31:1599:36 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1645:28:1645:33 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1669:39:1669:44 | ControlFlowNode for record [Attribute args] | semmle.label | ControlFlowNode for record [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2089:16:2089:19 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2097:21:2097:24 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2099:17:2099:20 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:2107:22:2107:25 | ControlFlowNode for args [List element] | semmle.label | ControlFlowNode for args [List element] |
| test.py:19:16:19:29 | ControlFlowNode for get_password() | semmle.label | ControlFlowNode for get_password() |
| test.py:20:48:20:55 | ControlFlowNode for password | semmle.label | ControlFlowNode for password |
| test.py:20:48:20:55 | ControlFlowNode for password | semmle.label | ControlFlowNode for password |
| test.py:22:58:22:65 | ControlFlowNode for password | semmle.label | ControlFlowNode for password |
| test.py:22:58:22:65 | ControlFlowNode for password | semmle.label | ControlFlowNode for password |
| test.py:23:58:23:65 | ControlFlowNode for password | semmle.label | ControlFlowNode for password |
| test.py:23:58:23:65 | ControlFlowNode for password | semmle.label | ControlFlowNode for password |
| test.py:27:40:27:47 | ControlFlowNode for password | semmle.label | ControlFlowNode for password |
| test.py:27:40:27:47 | ControlFlowNode for password | semmle.label | ControlFlowNode for password |
| test.py:30:58:30:65 | ControlFlowNode for password | semmle.label | ControlFlowNode for password |
| test.py:30:58:30:65 | ControlFlowNode for password | semmle.label | ControlFlowNode for password |
| test.py:34:30:34:39 | ControlFlowNode for get_cert() | semmle.label | ControlFlowNode for get_cert() |
| test.py:34:30:34:39 | ControlFlowNode for get_cert() | semmle.label | ControlFlowNode for get_cert() |
| test.py:37:11:37:24 | ControlFlowNode for get_password() | semmle.label | ControlFlowNode for get_password() |
| test.py:39:22:39:35 | ControlFlowNode for get_password() | semmle.label | ControlFlowNode for get_password() |
@@ -114,11 +21,7 @@ nodes
| test.py:67:21:67:37 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute |
| test.py:69:11:69:31 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript |
subpaths
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1556:59:1556:62 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:283:23:283:26 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:311:9:311:12 | [post] ControlFlowNode for self [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1556:14:1557:35 | ControlFlowNode for _logRecordFactory() [Attribute args] |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1587:66:1587:69 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1550:53:1550:56 | ControlFlowNode for args [List element] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1563:16:1563:17 | ControlFlowNode for rv [Attribute args] | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1587:18:1588:62 | ControlFlowNode for Attribute() [Attribute args] |
#select
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1021:38:1023:70 | ControlFlowNode for BinaryExpr | test.py:19:16:19:29 | ControlFlowNode for get_password() | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1021:38:1023:70 | ControlFlowNode for BinaryExpr | This expression logs $@ as clear text. | test.py:19:16:19:29 | ControlFlowNode for get_password() | sensitive data (password) |
| file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1021:38:1023:70 | ControlFlowNode for BinaryExpr | test.py:34:30:34:39 | ControlFlowNode for get_cert() | file:///home/rasmus/.pyenv/versions/3.9.5/lib/python3.9/logging/__init__.py:1021:38:1023:70 | ControlFlowNode for BinaryExpr | This expression logs $@ as clear text. | test.py:34:30:34:39 | ControlFlowNode for get_cert() | sensitive data (certificate) |
| test.py:20:48:20:55 | ControlFlowNode for password | test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:20:48:20:55 | ControlFlowNode for password | This expression logs $@ as clear text. | test.py:19:16:19:29 | ControlFlowNode for get_password() | sensitive data (password) |
| test.py:22:58:22:65 | ControlFlowNode for password | test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:22:58:22:65 | ControlFlowNode for password | This expression logs $@ as clear text. | test.py:19:16:19:29 | ControlFlowNode for get_password() | sensitive data (password) |
| test.py:23:58:23:65 | ControlFlowNode for password | test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:23:58:23:65 | ControlFlowNode for password | This expression logs $@ as clear text. | test.py:19:16:19:29 | ControlFlowNode for get_password() | sensitive data (password) |