Skip to content

Commit df3d929

Browse files
committed
Python: PossibleTimingAttackAgainstHash (+ selecting source node instead of string)
1 parent 55edd40 commit df3d929

File tree

2 files changed

+4
-6
lines changed

2 files changed

+4
-6
lines changed

python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,7 @@ private module PossibleTimingAttackAgainstHashConfig implements DataFlow::Config
2727

2828
predicate isSink(DataFlow::Node sink) { sink instanceof NonConstantTimeComparisonSink }
2929

30-
predicate observeDiffInformedIncrementalMode() {
31-
any() // TODO: Make sure that the location overrides match the query's select clause: Column 5 selects source.getResultType (/Users/d10c/src/semmle-code/ql/python/ql/src/experimental/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.ql@41:3:41:54)
32-
}
30+
predicate observeDiffInformedIncrementalMode() { any() }
3331
}
3432

3533
module PossibleTimingAttackAgainstHashFlow =
@@ -42,4 +40,4 @@ from
4240
PossibleTimingAttackAgainstHashFlow::PathNode sink
4341
where PossibleTimingAttackAgainstHashFlow::flowPath(source, sink)
4442
select sink.getNode(), source, sink, "Possible Timing attack against $@ validation.",
45-
source.getNode().(ProduceCryptoCall).getResultType(), "message"
43+
source.getNode(), source.getNode().(ProduceCryptoCall).getResultType() + " message"

python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.expected

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ nodes
1010
| TimingAttackAgainstHash.py:37:19:37:48 | ControlFlowNode for sign() | semmle.label | ControlFlowNode for sign() |
1111
subpaths
1212
#select
13-
| TimingAttackAgainstHash.py:27:24:27:32 | ControlFlowNode for signature | TimingAttackAgainstHash.py:26:17:26:41 | ControlFlowNode for Attribute() | TimingAttackAgainstHash.py:27:24:27:32 | ControlFlowNode for signature | Possible Timing attack against $@ validation. | signature | message |
14-
| TimingAttackAgainstHash.py:37:19:37:48 | ControlFlowNode for sign() | TimingAttackAgainstHash.py:30:12:30:47 | ControlFlowNode for Attribute() | TimingAttackAgainstHash.py:37:19:37:48 | ControlFlowNode for sign() | Possible Timing attack against $@ validation. | MAC | message |
13+
| TimingAttackAgainstHash.py:27:24:27:32 | ControlFlowNode for signature | TimingAttackAgainstHash.py:26:17:26:41 | ControlFlowNode for Attribute() | TimingAttackAgainstHash.py:27:24:27:32 | ControlFlowNode for signature | Possible Timing attack against $@ validation. | TimingAttackAgainstHash.py:26:17:26:41 | ControlFlowNode for Attribute() | signature message |
14+
| TimingAttackAgainstHash.py:37:19:37:48 | ControlFlowNode for sign() | TimingAttackAgainstHash.py:30:12:30:47 | ControlFlowNode for Attribute() | TimingAttackAgainstHash.py:37:19:37:48 | ControlFlowNode for sign() | Possible Timing attack against $@ validation. | TimingAttackAgainstHash.py:30:12:30:47 | ControlFlowNode for Attribute() | MAC message |

0 commit comments

Comments
 (0)