Challenge Information - KPRCA_00086

Commonly known as: Pac_for_Edges


Rounds Enabled

73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95

Details

Original Versions

Known Vulnerabilities

  • CWE-122 - Heap-based Buffer Overflow
  • CWEs are listed as indicated by the challenge author.

Deployed patches

Deployed IDS rules

None

DARPA performer group

Kaprica Security (KPRCA)

Description

This service creates an interface in which someone can play a game where you drive a character around to collect all the dots. You cannot drive into the side walls, or the middle walls (shown as "+"), and you only have a limited number of moves in which to collect all of the dots. If you are successful in collecting all the dots before you run out of moves, then you are able to send an image to the service. Edge detection is then performed on this image and another image is returned containing only the edges of the image which was sent in.

To move the initial game, the program expects the following charachters, followed by new lines. w = move up, d = move right, a = move left, s = move down. Additionally, q enters into a teleport mode which you can then send a number which linearly maps to board positions.

Feature List

If the initial game is won, the service makes available an awesome edge detector which does a particularly good job extracting edges from portraits. This algortihm is realtivly quick given the power of the results.

Vulnerability

Vulnerability 1

The vulnerability is triggered by overflowing the buffer which holds the width field of the image. In order to get the program to continue execution, the overflow should start with "512 " and then can contain your desired exploit. In the POV provided, we utilize the overflow to control the next and prev pointers of the next free block to overwrite a saved ebp on the stack.

To patch, we terminate if the attacker tries to load 20 bytes into the buffer.

Generic class of vulnerability

Heap-based Buffed Overflow

CWE classification

CWE-122: Heap-based Buffer Overflow

Challenges

Discovery via un-intelligent fuzzing would be difficult as it would take more than the allowed number of moves to random walk the map. This said, if you figure out that "q" is a teleport, then simply incrementing the teleport location (second input) will solve the game.

Difficulty

  • Discovery: Medium
  • Proving: Medium
  • Patching: Easy

POV Information

Round Source Destination Result POV Analysis Video
74 CSDS Disekt Failed POV POV Watch
74 CSDS ForAllSecure Failed POV POV Watch
74 CSDS Shellphish Failed POV POV Watch
74 CSDS TECHx Failed POV POV Watch
74 DeepRed CodeJitsu Failed POV POV Watch
74 DeepRed CSDS Failed POV POV Watch
74 DeepRed Disekt Failed POV POV Watch
74 DeepRed ForAllSecure Failed POV POV Watch
74 DeepRed Shellphish Failed POV POV Watch
74 DeepRed TECHx Failed POV POV Watch
75 CSDS CodeJitsu Failed POV through defenses POV Watch
75 CSDS DeepRed Failed POV POV Watch
75 CSDS Disekt Failed POV POV Watch
75 CSDS ForAllSecure Failed POV POV Watch
75 CSDS Shellphish Failed POV POV Watch
75 CSDS TECHx Failed POV POV Watch
75 DeepRed CodeJitsu Failed POV through defenses POV Watch
75 DeepRed CSDS Failed POV POV Watch
75 DeepRed Disekt Failed POV POV Watch
75 DeepRed ForAllSecure Failed POV POV Watch
75 DeepRed Shellphish Failed POV POV Watch
75 DeepRed TECHx Failed POV POV Watch
76 CSDS CodeJitsu Failed POV through defenses POV Watch
76 CSDS DeepRed Failed POV POV Watch
76 CSDS Disekt Failed POV POV Watch
76 CSDS ForAllSecure Failed POV POV Watch
76 CSDS Shellphish Failed POV POV Watch
76 CSDS TECHx Failed POV POV Watch
76 DeepRed CodeJitsu Failed POV through defenses POV Watch
76 DeepRed CSDS Failed POV POV Watch
76 DeepRed Disekt Failed POV POV Watch
76 DeepRed ForAllSecure Failed POV POV Watch
76 DeepRed Shellphish Failed POV POV Watch
76 DeepRed TECHx Failed POV POV Watch
77 CodeJitsu Shellphish Failed POV through defenses POV Watch
77 CSDS CodeJitsu Failed POV through defenses POV Watch
77 CSDS DeepRed Failed POV POV Watch
77 CSDS Disekt Failed POV POV Watch
77 CSDS ForAllSecure Failed POV POV Watch
77 CSDS Shellphish Failed POV through defenses POV Watch
77 CSDS TECHx Failed POV POV Watch
77 DeepRed CodeJitsu Failed POV through defenses POV Watch
77 DeepRed CSDS Failed POV POV Watch
77 DeepRed Disekt Failed POV POV Watch
77 DeepRed ForAllSecure Failed POV POV Watch
77 DeepRed Shellphish Failed POV through defenses POV Watch
77 DeepRed TECHx Failed POV POV Watch
78 CSDS CodeJitsu Failed POV through defenses POV Watch
78 CSDS DeepRed Failed POV POV Watch
78 CSDS Disekt Failed POV POV Watch
78 CSDS ForAllSecure Failed POV POV Watch
78 CSDS Shellphish Failed POV through defenses POV Watch
78 CSDS TECHx Failed POV POV Watch
78 DeepRed CodeJitsu Failed POV through defenses POV Watch
78 DeepRed CSDS Failed POV POV Watch
78 DeepRed Disekt Failed POV POV Watch
78 DeepRed ForAllSecure Failed POV POV Watch
78 DeepRed Shellphish Failed POV through defenses POV Watch
78 DeepRed TECHx Failed POV POV Watch
79 CSDS CodeJitsu Failed POV through defenses POV Watch
79 CSDS DeepRed Failed POV POV Watch
79 CSDS Disekt Failed POV POV Watch
79 CSDS ForAllSecure Failed POV POV Watch
79 CSDS Shellphish Failed POV through defenses POV Watch
79 CSDS TECHx Failed POV POV Watch
79 DeepRed CodeJitsu Failed POV through defenses POV Watch
79 DeepRed CSDS Failed POV POV Watch
79 DeepRed Disekt Failed POV POV Watch
79 DeepRed ForAllSecure Failed POV POV Watch
79 DeepRed Shellphish Failed POV through defenses POV Watch
79 DeepRed TECHx Failed POV POV Watch
80 CSDS CodeJitsu Failed POV through defenses POV Watch
80 CSDS DeepRed Failed POV POV Watch
80 CSDS Disekt Failed POV POV Watch
80 CSDS ForAllSecure Failed POV POV Watch
80 CSDS Shellphish Failed POV through defenses POV Watch
80 CSDS TECHx Failed POV POV Watch
80 DeepRed CodeJitsu Failed POV through defenses POV Watch
80 DeepRed CSDS Failed POV POV Watch
80 DeepRed Disekt Failed POV POV Watch
80 DeepRed ForAllSecure Failed POV POV Watch
80 DeepRed Shellphish Failed POV through defenses POV Watch
80 DeepRed TECHx Failed POV POV Watch
81 CodeJitsu Shellphish Failed POV POV Watch
81 CSDS CodeJitsu Failed POV POV Watch
81 CSDS DeepRed Failed POV POV Watch
81 CSDS Disekt Failed POV POV Watch
81 CSDS ForAllSecure Failed POV POV Watch
81 CSDS Shellphish Failed POV POV Watch
81 CSDS TECHx Failed POV POV Watch
81 DeepRed CodeJitsu Failed POV POV Watch
81 DeepRed CSDS Failed POV POV Watch
81 DeepRed Disekt Failed POV POV Watch
81 DeepRed ForAllSecure Failed POV POV Watch
81 DeepRed Shellphish Failed POV POV Watch
81 DeepRed TECHx Failed POV POV Watch
82 CSDS CodeJitsu Failed POV POV Watch
82 CSDS DeepRed Failed POV POV Watch
82 CSDS Disekt Failed POV POV Watch
82 CSDS ForAllSecure Failed POV POV Watch
82 CSDS Shellphish Failed POV POV Watch
82 CSDS TECHx Failed POV POV Watch
82 DeepRed CodeJitsu Failed POV POV Watch
82 DeepRed CSDS Failed POV POV Watch
82 DeepRed Disekt Failed POV POV Watch
82 DeepRed ForAllSecure Failed POV POV Watch
82 DeepRed Shellphish Failed POV POV Watch
82 DeepRed TECHx Failed POV POV Watch
83 CSDS CodeJitsu Failed POV POV Watch
83 CSDS DeepRed Failed POV POV Watch
83 CSDS Disekt Failed POV POV Watch
83 CSDS ForAllSecure Failed POV POV Watch
83 CSDS Shellphish Failed POV POV Watch
83 CSDS TECHx Failed POV POV Watch
83 DeepRed CodeJitsu Failed POV POV Watch
83 DeepRed CSDS Failed POV POV Watch
83 DeepRed Disekt Failed POV POV Watch
83 DeepRed ForAllSecure Failed POV POV Watch
83 DeepRed Shellphish Failed POV POV Watch
83 DeepRed TECHx Failed POV POV Watch
84 CSDS CodeJitsu Failed POV POV Watch
84 CSDS DeepRed Failed POV POV Watch
84 CSDS Disekt Failed POV POV Watch
84 CSDS ForAllSecure Failed POV POV Watch
84 CSDS Shellphish Failed POV POV Watch
84 CSDS TECHx Failed POV POV Watch
84 DeepRed CodeJitsu Failed POV POV Watch
84 DeepRed CSDS Failed POV POV Watch
84 DeepRed Disekt Failed POV POV Watch
84 DeepRed ForAllSecure Failed POV POV Watch
84 DeepRed Shellphish Failed POV POV Watch
84 DeepRed TECHx Failed POV POV Watch
85 CSDS CodeJitsu Failed POV POV Watch
85 CSDS DeepRed Failed POV POV Watch
85 CSDS Disekt Failed POV POV Watch
85 CSDS ForAllSecure Failed POV POV Watch
85 CSDS Shellphish Failed POV POV Watch
85 CSDS TECHx Failed POV POV Watch
85 DeepRed CodeJitsu Failed POV POV Watch
85 DeepRed CSDS Failed POV POV Watch
85 DeepRed Disekt Failed POV POV Watch
85 DeepRed ForAllSecure Failed POV POV Watch
85 DeepRed Shellphish Failed POV POV Watch
85 DeepRed TECHx Failed POV POV Watch
86 CSDS CodeJitsu Failed POV POV Watch
86 CSDS DeepRed Failed POV POV Watch
86 CSDS Disekt Failed POV POV Watch
86 CSDS ForAllSecure Failed POV POV Watch
86 CSDS Shellphish Failed POV POV Watch
86 CSDS TECHx Failed POV POV Watch
86 DeepRed CodeJitsu Failed POV POV Watch
86 DeepRed CSDS Failed POV POV Watch
86 DeepRed Disekt Failed POV POV Watch
86 DeepRed ForAllSecure Failed POV POV Watch
86 DeepRed Shellphish Failed POV POV Watch
86 DeepRed TECHx Failed POV POV Watch
87 CSDS CodeJitsu Failed POV POV Watch
87 CSDS DeepRed Failed POV POV Watch
87 CSDS Disekt Failed POV POV Watch
87 CSDS ForAllSecure Failed POV POV Watch
87 CSDS Shellphish Failed POV POV Watch
87 CSDS TECHx Failed POV POV Watch
87 DeepRed CodeJitsu Failed POV POV Watch
87 DeepRed CSDS Failed POV POV Watch
87 DeepRed Disekt Failed POV POV Watch
87 DeepRed ForAllSecure Failed POV POV Watch
87 DeepRed Shellphish Failed POV POV Watch
87 DeepRed TECHx Failed POV POV Watch
88 CSDS CodeJitsu Failed POV POV Watch
88 CSDS DeepRed Failed POV POV Watch
88 CSDS Disekt Failed POV POV Watch
88 CSDS ForAllSecure Failed POV POV Watch
88 CSDS Shellphish Failed POV POV Watch
88 CSDS TECHx Failed POV POV Watch
88 DeepRed CodeJitsu Failed POV POV Watch
88 DeepRed CSDS Failed POV POV Watch
88 DeepRed Disekt Failed POV POV Watch
88 DeepRed ForAllSecure Failed POV POV Watch
88 DeepRed Shellphish Failed POV POV Watch
88 DeepRed TECHx Failed POV POV Watch
89 CSDS CodeJitsu Failed POV POV Watch
89 CSDS DeepRed Failed POV POV Watch
89 CSDS Disekt Failed POV POV Watch
89 CSDS ForAllSecure Failed POV POV Watch
89 CSDS Shellphish Failed POV POV Watch
89 CSDS TECHx Failed POV POV Watch
89 DeepRed CodeJitsu Failed POV POV Watch
89 DeepRed CSDS Failed POV POV Watch
89 DeepRed Disekt Failed POV POV Watch
89 DeepRed ForAllSecure Failed POV POV Watch
89 DeepRed Shellphish Failed POV POV Watch
89 DeepRed TECHx Failed POV POV Watch
90 CSDS CodeJitsu Failed POV POV Watch
90 CSDS DeepRed Failed POV POV Watch
90 CSDS Disekt Failed POV POV Watch
90 CSDS ForAllSecure Failed POV POV Watch
90 CSDS Shellphish Failed POV POV Watch
90 CSDS TECHx Failed POV POV Watch
90 DeepRed CodeJitsu Failed POV POV Watch
90 DeepRed CSDS Failed POV POV Watch
90 DeepRed Disekt Failed POV POV Watch
90 DeepRed ForAllSecure Failed POV POV Watch
90 DeepRed Shellphish Failed POV POV Watch
90 DeepRed TECHx Failed POV POV Watch
91 CSDS CodeJitsu Failed POV POV Watch
91 CSDS DeepRed Failed POV POV Watch
91 CSDS Disekt Failed POV POV Watch
91 CSDS ForAllSecure Failed POV POV Watch
91 CSDS Shellphish Failed POV POV Watch
91 CSDS TECHx Failed POV POV Watch
91 DeepRed CodeJitsu Failed POV POV Watch
91 DeepRed CSDS Failed POV POV Watch
91 DeepRed Disekt Failed POV POV Watch
91 DeepRed ForAllSecure Failed POV POV Watch
91 DeepRed Shellphish Failed POV POV Watch
91 DeepRed TECHx Failed POV POV Watch
92 CSDS CodeJitsu Failed POV POV Watch
92 CSDS DeepRed Failed POV POV Watch
92 CSDS Disekt Failed POV POV Watch
92 CSDS ForAllSecure Failed POV POV Watch
92 CSDS Shellphish Failed POV POV Watch
92 CSDS TECHx Failed POV POV Watch
92 DeepRed CodeJitsu Failed POV POV Watch
92 DeepRed CSDS Failed POV POV Watch
92 DeepRed Disekt Failed POV POV Watch
92 DeepRed ForAllSecure Failed POV POV Watch
92 DeepRed Shellphish Failed POV POV Watch
92 DeepRed TECHx Failed POV POV Watch
93 CSDS CodeJitsu Failed POV POV Watch
93 CSDS DeepRed Failed POV POV Watch
93 CSDS Disekt Failed POV POV Watch
93 CSDS ForAllSecure Failed POV POV Watch
93 CSDS Shellphish Failed POV POV Watch
93 CSDS TECHx Failed POV POV Watch
93 DeepRed CodeJitsu Failed POV POV Watch
93 DeepRed CSDS Failed POV POV Watch
93 DeepRed Disekt Failed POV POV Watch
93 DeepRed ForAllSecure Failed POV POV Watch
93 DeepRed Shellphish Failed POV POV Watch
93 DeepRed TECHx Failed POV POV Watch
94 CSDS CodeJitsu Failed POV POV Watch
94 CSDS DeepRed Failed POV POV Watch
94 CSDS Disekt Failed POV POV Watch
94 CSDS ForAllSecure Failed POV POV Watch
94 CSDS Shellphish Failed POV POV Watch
94 CSDS TECHx Failed POV POV Watch
94 DeepRed CodeJitsu Failed POV POV Watch
94 DeepRed CSDS Failed POV POV Watch
94 DeepRed Disekt Failed POV POV Watch
94 DeepRed ForAllSecure Failed POV POV Watch
94 DeepRed Shellphish Failed POV POV Watch
94 DeepRed TECHx Failed POV POV Watch
94 ForAllSecure CodeJitsu Failed POV POV Watch
94 ForAllSecure CSDS Failed POV POV Watch
94 ForAllSecure DeepRed Failed POV POV Watch
94 ForAllSecure Disekt Failed POV POV Watch
94 ForAllSecure Shellphish Failed POV POV Watch
94 ForAllSecure TECHx Failed POV POV Watch
95 CSDS CodeJitsu Failed POV POV Watch
95 CSDS DeepRed Failed POV POV Watch
95 CSDS Disekt Failed POV POV Watch
95 CSDS ForAllSecure Failed POV POV Watch
95 CSDS Shellphish Failed POV POV Watch
95 CSDS TECHx Failed POV POV Watch
95 DeepRed CodeJitsu Failed POV POV Watch
95 DeepRed CSDS Failed POV POV Watch
95 DeepRed Disekt Failed POV POV Watch
95 DeepRed ForAllSecure Failed POV POV Watch
95 DeepRed Shellphish Failed POV POV Watch
95 DeepRed TECHx Failed POV POV Watch
95 ForAllSecure CodeJitsu Failed POV POV Watch
95 ForAllSecure CSDS Failed POV POV Watch
95 ForAllSecure DeepRed Failed POV POV Watch
95 ForAllSecure Disekt Failed POV POV Watch
95 ForAllSecure Shellphish Failed POV POV Watch
95 ForAllSecure TECHx Failed POV POV Watch

Curated by Lunge Technology, LLC. Questions or comments? Send us email