XNU IPC
CSE 598 – Applied Vulnerability Research
Fall 2024
Adam Doupé�Arizona State University
XNU and POSIX
2
Adam Doupé, CSE 598 Applied Vulnerability Research
POSIX IPC
3
Adam Doupé, CSE 598 Applied Vulnerability Research
Mach IPC
4
Adam Doupé, CSE 598 Applied Vulnerability Research
Mach IPC Concepts
5
Adam Doupé, CSE 598 Applied Vulnerability Research
Port Rights
6
Adam Doupé, CSE 598 Applied Vulnerability Research
Passing Port Rights
7
Adam Doupé, CSE 598 Applied Vulnerability Research
Communication
8
Bob
Alice
0. Assume Alice has SEND(B) port right
1. Alice creates a new port, called A
2. Alice sends right SEND(A) to port B using SEND(B)
3. Bob uses RECEIVE(B) right to receive message, and also has SEND(A) right
4. Now what???
Adam Doupé, CSE 598 Applied Vulnerability Research
Communication Issues?
9
Adam Doupé, CSE 598 Applied Vulnerability Research
Bootstrapping
10
Bob
Alice
1. Bob creates port B and has RECEIVE(B) right
3. Alice creates a new port, called A
4. Alice asks bootstrap server for Bob’s port, gets SEND(B)
6. Bob uses RECEIVE(B) right to receive message, and also has SEND(A) right
7. Now what???�How many messages?
2. Bob sends SEND(B) to bootstrap server
5. Alice sends right SEND(A) to port B using SEND(B)
Adam Doupé, CSE 598 Applied Vulnerability Research
Bootstraping Issues?
11
Adam Doupé, CSE 598 Applied Vulnerability Research
Registered Bootstrapping
Bob
Alice
1. Alice creates a new port, called A
2. Alice asks bootstrap server for Bob’s (com.bob) port
9. Bob uses RECEIVE(B) right to receive message, and also has SEND(A) right
4. Bob checks in with bootstrap server
8. Alice sends right SEND(A) to port B using SEND(B)
0. admin says com.bob maps to /bin/bob
3. Bootstrap looks for port for /bin/bob, otherwise runs it, creates B and has RECEIVE(B)
5. Bootstrap keeps SEND(B), sends Bob RECEIVE(B)
6. Bob gets RECEIVE(B) from bootstrap
7. Bootstrap sends SEND(B) to Alice
Adam Doupé, CSE 598 Applied Vulnerability Research
Registered Bootstraping Issues?
13
Adam Doupé, CSE 598 Applied Vulnerability Research
Viewing Ports
14
Adam Doupé, CSE 598 Applied Vulnerability Research
Types of Messages
15
Adam Doupé, CSE 598 Applied Vulnerability Research
Complex Messages
16
Adam Doupé, CSE 598 Applied Vulnerability Research
Sending and Receiving Messages
17
Adam Doupé, CSE 598 Applied Vulnerability Research
What happens under the hood?
18
Adam Doupé, CSE 598 Applied Vulnerability Research