Skip to content
This repository was archived by the owner on Aug 18, 2022. It is now read-only.

Commit 00da8a1

Browse files
committed
Point remaining gist links to this repository
1 parent 4b807b9 commit 00da8a1

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

c++/introduction/session-3/codeql-workshop-cpp-global-data-flow.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55

66
## Problem statement
77

8-
In this workshop, we will use CodeQL to analyze the source code of [dotnet/coreclr](https://github.com/dotnet/coreclr), the runtime for .NET Core. This follows on from the [Introduction to local dataflow](https://gist.github.com/lcartey/db74e6041393062f9deef67456a229d3) workshop, and we recommend completing that workshop first.
8+
In this workshop, we will use CodeQL to analyze the source code of
9+
[dotnet/coreclr](https://github.com/dotnet/coreclr), the runtime for .NET
10+
Core. This follows on from the
11+
[Introduction to local dataflow](../session-2/codeql-workshop-cpp-local-data-flow.md)
12+
workshop, and we recommend completing that workshop first.
913

1014
Many security problems can be phrased in terms of _information flow_:
1115

@@ -24,7 +28,8 @@ While local data flow is feasible to compute for all functions in a CodeQL datab
2428

2529
The global data flow (and taint tracking) library avoids this problem by requiring that the query author specifies which _sources_ and _sinks_ are applicable. This allows the implementation to compute paths only between the restricted set of nodes, rather than for the full graph.
2630

27-
In this workshop we will try to write a global data flow query to solve the format string problem introduced in the [Introduction to local dataflow](https://gist.github.com/lcartey/db74e6041393062f9deef67456a229d3) workshop.
31+
In this workshop we will try to write a global data flow query to solve the format
32+
string problem introduced in the [Introduction to local dataflow](../session-2/codeql-workshop-cpp-local-data-flow.md)
2833

2934
This workshops will provide:
3035
- Exploration of global data flow and taint tracking

c++/introduction/session-3/codeql-workshop-cpp-uboot.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77

88
In this workshop, we will use CodeQL to analyze the source code of [U-Boot loader](https://en.wikipedia.org/wiki/Das_U-Boot), an open source boot loader used in embedded devices.
99

10-
This workshop assumes you have completed the [CodeQL workshop for C/C++: Introduction to global data flow workshop](https://gist.github.com/lcartey/a53ff1221f4a50aad639d35df8b2e99a). If you have not, or if you prefer a more beginner focused approach to this content, you can use the [CodeQL U-Boot Challenge Learning Lab](https://lab.github.com/githubtraining/codeql-u-boot-challenge-(cc++)) course, which provides a self-guided step-by-step automated workflow.
10+
This workshop assumes you have completed the
11+
[CodeQL workshop for C/C++: Introduction to global data flow workshop](codeql-workshop-cpp-global-data-flow.md). If
12+
you have not, or if you prefer a more beginner focused approach to this content,
13+
you can use the
14+
[CodeQL U-Boot Challenge Learning Lab](https://lab.github.com/githubtraining/codeql-u-boot-challenge-(cc++)) course,
15+
which provides a self-guided step-by-step automated workflow.
1116

1217
The goal for this workshop is to find a set of 9 remote-code-execution vulnerabilities in the U-Boot boot loader. These vulnerabilities were originally discovered by GitHub Security Lab researchers and have since been fixed. An attacker with positioning on the local network, or control of a malicious NFS server, could potentially achieve remote code execution on the U-Boot powered device. This was possible because the code read data from the network (that could be attacker-controlled) and passed it to the length parameter of a call to the memcpy function. When such a length parameter is not properly validated before use, it may lead to exploitable memory corruption vulnerabilities.
1318

c++/introduction/session-4/codeql-workshop-cpp-glibc-segv.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
In this workshop, we will use CodeQL to analyze the source code of the [GNU C Library](https://www.gnu.org/software/libc/) (glibc).
99

10-
This workshop assumes you have completed the [CodeQL for C/C++: Introduction to global data flow workshop](https://gist.github.com/lcartey/a53ff1221f4a50aad639d35df8b2e99a).
10+
This workshop assumes you have completed the
11+
[CodeQL workshop for C/C++: Introduction to global data flow workshop](codeql-workshop-cpp-global-data-flow.md).
1112

1213
The goal of this challenge is to find unsafe uses of `alloca` in glibc. [alloca](http://man7.org/linux/man-pages/man3/alloca.3.html) is used to allocate a buffer on the stack. It is usually implemented by simply subtracting the size parameter from the stack pointer and returning the new value of the stack pointer. This means that it has two important benefits:
1314

0 commit comments

Comments
 (0)