Challenge Information - KPRCA_00073

Commonly known as: Pattern_Finder


Rounds Enabled

58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72

Details

Original Versions

Known Vulnerabilities

  • CWE-121 - Stack-based Buffer Overflow
  • CWE-787 - Out-of-bounds Write
  • CWEs are listed as indicated by the challenge author.

Deployed patches

Deployed IDS rules

None

DARPA performer group

Kaprica Security (KPRCA)

Description

Pattern Finder is a service that user to quickly detect the presence of a set of known patterns within a blob of data.

The service first reads in a series of pattern definitions from the user. It then compiles a pattern search machine that will be used to detect patterns in subsequently data entered by the user. The user is provided with a list of detected patterns once the search machine has finished running.

Feature List

  • Supports up to 4096 patterns
  • Supports patterns up 4096 bytes in size
  • Supports detecting patterns in up to 64 kilobytes of input
  • Super fast!

Vulnerability

Vulnerability 1

In the ReportMatches function, the stack buffer where the report contents are gathered before being sent to the user is a fixed 512 bytes in size. Therefore, a stack buffer overflow is achievable given a large enough set of patterns and a data blob which contains enough of these patterns to generate a sufficiently large report.

Generic class of vulnerability

Stack buffer overflow

CWE classification

CWE-121 Stack-based Buffer Overflow CWE-787 Out-of-bounds Write

Challenges

The complexity behind this challenge lies within the underlying algorithm which is used to do pattern detection. The algorithm used is Aho-Corasick which is a string matching algorithm that allows for the simultaneous matching of patterns through the use of a finite state machine. The author imagines that sufficiently complex algorithms will test the strength of many code analysis engines.

Difficulty

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

POV Information

Round Source Destination Result POV Analysis Video
59 CSDS CodeJitsu Failed POV POV Watch
59 CSDS DeepRed Failed POV POV Watch
59 CSDS Disekt Failed POV POV Watch
59 CSDS ForAllSecure Failed POV POV Watch
59 CSDS Shellphish Failed POV POV Watch
59 CSDS TECHx Failed POV POV Watch
59 DeepRed CodeJitsu Failed POV POV Watch
59 DeepRed CSDS Failed POV POV Watch
59 DeepRed Disekt Failed POV POV Watch
59 DeepRed ForAllSecure Failed POV POV Watch
59 DeepRed Shellphish Failed POV POV Watch
59 DeepRed TECHx Failed POV POV Watch
60 CodeJitsu Disekt Failed POV through defenses POV Watch
60 CSDS CodeJitsu Failed POV through defenses POV Watch
60 CSDS DeepRed Failed POV POV Watch
60 CSDS Disekt Failed POV through defenses POV Watch
60 CSDS ForAllSecure Failed POV POV Watch
60 CSDS Shellphish Failed POV POV Watch
60 CSDS TECHx Failed POV POV Watch
60 DeepRed CodeJitsu Failed POV through defenses POV Watch
60 DeepRed CSDS Failed POV POV Watch
60 DeepRed Disekt Failed POV through defenses POV Watch
60 DeepRed ForAllSecure Failed POV POV Watch
60 DeepRed Shellphish Failed POV POV Watch
60 DeepRed TECHx Failed POV POV Watch
61 CSDS CodeJitsu Failed POV through defenses POV Watch
61 CSDS DeepRed Failed POV POV Watch
61 CSDS Disekt Failed POV through defenses POV Watch
61 CSDS ForAllSecure Failed POV POV Watch
61 CSDS Shellphish Failed POV POV Watch
61 CSDS TECHx Failed POV POV Watch
61 DeepRed CodeJitsu Failed POV through defenses POV Watch
61 DeepRed CSDS Failed POV POV Watch
61 DeepRed Disekt Failed POV through defenses POV Watch
61 DeepRed ForAllSecure Failed POV POV Watch
61 DeepRed Shellphish Failed POV POV Watch
61 DeepRed TECHx Failed POV POV Watch
62 CodeJitsu Shellphish Failed POV through defenses POV Watch
62 CSDS CodeJitsu Failed POV through defenses POV Watch
62 CSDS DeepRed Failed POV POV Watch
62 CSDS Disekt Failed POV through defenses POV Watch
62 CSDS ForAllSecure Failed POV POV Watch
62 CSDS Shellphish Failed POV through defenses POV Watch
62 CSDS TECHx Failed POV POV Watch
62 DeepRed CodeJitsu Failed POV through defenses POV Watch
62 DeepRed CSDS Failed POV POV Watch
62 DeepRed Disekt Failed POV through defenses POV Watch
62 DeepRed ForAllSecure Failed POV POV Watch
62 DeepRed Shellphish Failed POV through defenses POV Watch
62 DeepRed TECHx Failed POV POV Watch
63 CodeJitsu Disekt Failed POV through defenses POV Watch
63 CSDS CodeJitsu Failed POV through defenses POV Watch
63 CSDS DeepRed Failed POV POV Watch
63 CSDS Disekt Failed POV through defenses POV Watch
63 CSDS ForAllSecure Failed POV POV Watch
63 CSDS Shellphish Failed POV through defenses POV Watch
63 CSDS TECHx Failed POV POV Watch
63 DeepRed CodeJitsu Failed POV through defenses POV Watch
63 DeepRed CSDS Failed POV POV Watch
63 DeepRed Disekt Failed POV through defenses POV Watch
63 DeepRed ForAllSecure Failed POV POV Watch
63 DeepRed Shellphish Failed POV through defenses POV Watch
63 DeepRed TECHx Failed POV POV Watch
64 CodeJitsu Disekt Failed POV through defenses POV Watch
64 CSDS CodeJitsu Failed POV through defenses POV Watch
64 CSDS DeepRed Failed POV POV Watch
64 CSDS Disekt Failed POV through defenses POV Watch
64 CSDS ForAllSecure Failed POV POV Watch
64 CSDS Shellphish Failed POV through defenses POV Watch
64 CSDS TECHx Failed POV POV Watch
64 DeepRed CodeJitsu Failed POV through defenses POV Watch
64 DeepRed CSDS Failed POV POV Watch
64 DeepRed Disekt Failed POV through defenses POV Watch
64 DeepRed ForAllSecure Failed POV POV Watch
64 DeepRed Shellphish Failed POV through defenses POV Watch
64 DeepRed TECHx Failed POV POV Watch
64 Disekt CodeJitsu Failed POV through defenses POV Watch
64 Disekt CSDS Failed POV POV Watch
64 Disekt DeepRed Failed POV POV Watch
64 Disekt ForAllSecure Failed POV POV Watch
64 Disekt Shellphish Failed POV through defenses POV Watch
64 Disekt TECHx Failed POV POV Watch
65 CodeJitsu Shellphish Failed POV POV Watch
65 CSDS CodeJitsu Failed POV through defenses POV Watch
65 CSDS DeepRed Failed POV POV Watch
65 CSDS Disekt Failed POV through defenses POV Watch
65 CSDS ForAllSecure Failed POV POV Watch
65 CSDS Shellphish Failed POV POV Watch
65 CSDS TECHx Failed POV POV Watch
65 DeepRed CodeJitsu Failed POV through defenses POV Watch
65 DeepRed CSDS Failed POV POV Watch
65 DeepRed Disekt Failed POV through defenses POV Watch
65 DeepRed ForAllSecure Failed POV POV Watch
65 DeepRed Shellphish Failed POV POV Watch
65 DeepRed TECHx Failed POV POV Watch
65 Disekt CodeJitsu Failed POV through defenses POV Watch
65 Disekt CSDS Failed POV POV Watch
65 Disekt DeepRed Failed POV POV Watch
65 Disekt ForAllSecure Failed POV POV Watch
65 Disekt Shellphish Failed POV POV Watch
65 Disekt TECHx Failed POV POV Watch
66 CSDS CodeJitsu Failed POV through defenses POV Watch
66 CSDS DeepRed Failed POV POV Watch
66 CSDS Disekt Failed POV through defenses POV Watch
66 CSDS ForAllSecure Failed POV POV Watch
66 CSDS Shellphish Failed POV POV Watch
66 CSDS TECHx Failed POV POV Watch
66 DeepRed CodeJitsu Failed POV through defenses POV Watch
66 DeepRed CSDS Failed POV POV Watch
66 DeepRed Disekt Failed POV through defenses POV Watch
66 DeepRed ForAllSecure Failed POV POV Watch
66 DeepRed Shellphish Failed POV POV Watch
66 DeepRed TECHx Failed POV POV Watch
66 Disekt CodeJitsu Failed POV through defenses POV Watch
66 Disekt CSDS Failed POV POV Watch
66 Disekt DeepRed Failed POV POV Watch
66 Disekt ForAllSecure Failed POV POV Watch
66 Disekt Shellphish Failed POV POV Watch
66 Disekt TECHx Failed POV POV Watch
67 CSDS CodeJitsu Failed POV through defenses POV Watch
67 CSDS DeepRed Failed POV POV Watch
67 CSDS Disekt Failed POV through defenses POV Watch
67 CSDS ForAllSecure Failed POV POV Watch
67 CSDS Shellphish Failed POV POV Watch
67 CSDS TECHx Failed POV POV Watch
67 DeepRed CodeJitsu Failed POV through defenses POV Watch
67 DeepRed CSDS Failed POV POV Watch
67 DeepRed Disekt Failed POV through defenses POV Watch
67 DeepRed ForAllSecure Failed POV POV Watch
67 DeepRed Shellphish Failed POV POV Watch
67 DeepRed TECHx Failed POV POV Watch
67 Disekt CodeJitsu Failed POV through defenses POV Watch
67 Disekt CSDS Failed POV POV Watch
67 Disekt DeepRed Failed POV POV Watch
67 Disekt ForAllSecure Failed POV POV Watch
67 Disekt Shellphish Failed POV POV Watch
67 Disekt TECHx Failed POV POV Watch
68 CSDS CodeJitsu Failed POV through defenses POV Watch
68 CSDS DeepRed Failed POV POV Watch
68 CSDS Disekt Failed POV through defenses POV Watch
68 CSDS ForAllSecure Failed POV POV Watch
68 CSDS Shellphish Failed POV POV Watch
68 CSDS TECHx Failed POV POV Watch
68 DeepRed CodeJitsu Failed POV through defenses POV Watch
68 DeepRed CSDS Failed POV POV Watch
68 DeepRed Disekt Failed POV through defenses POV Watch
68 DeepRed ForAllSecure Failed POV POV Watch
68 DeepRed Shellphish Failed POV POV Watch
68 DeepRed TECHx Failed POV POV Watch
68 Disekt CodeJitsu Failed POV through defenses POV Watch
68 Disekt CSDS Failed POV POV Watch
68 Disekt DeepRed Failed POV POV Watch
68 Disekt ForAllSecure Failed POV POV Watch
68 Disekt Shellphish Failed POV POV Watch
68 Disekt TECHx Failed POV POV Watch
69 CSDS CodeJitsu Failed POV through defenses POV Watch
69 CSDS DeepRed Failed POV POV Watch
69 CSDS Disekt Failed POV through defenses POV Watch
69 CSDS ForAllSecure Failed POV POV Watch
69 CSDS Shellphish Failed POV POV Watch
69 CSDS TECHx Failed POV POV Watch
69 DeepRed CodeJitsu Failed POV through defenses POV Watch
69 DeepRed CSDS Failed POV POV Watch
69 DeepRed Disekt Failed POV through defenses POV Watch
69 DeepRed ForAllSecure Failed POV POV Watch
69 DeepRed Shellphish Failed POV POV Watch
69 DeepRed TECHx Failed POV POV Watch
69 Disekt CodeJitsu Failed POV through defenses POV Watch
69 Disekt CSDS Failed POV POV Watch
69 Disekt DeepRed Failed POV POV Watch
69 Disekt ForAllSecure Failed POV POV Watch
69 Disekt Shellphish Failed POV POV Watch
69 Disekt TECHx Failed POV POV Watch
70 CSDS CodeJitsu Failed POV through defenses POV Watch
70 CSDS DeepRed Failed POV POV Watch
70 CSDS Disekt Failed POV through defenses POV Watch
70 CSDS ForAllSecure Failed POV POV Watch
70 CSDS Shellphish Failed POV POV Watch
70 CSDS TECHx Failed POV POV Watch
70 DeepRed CodeJitsu Failed POV through defenses POV Watch
70 DeepRed CSDS Failed POV POV Watch
70 DeepRed Disekt Failed POV through defenses POV Watch
70 DeepRed ForAllSecure Failed POV POV Watch
70 DeepRed Shellphish Failed POV POV Watch
70 DeepRed TECHx Failed POV POV Watch
70 Disekt CodeJitsu Failed POV through defenses POV Watch
70 Disekt CSDS Failed POV POV Watch
70 Disekt DeepRed Failed POV POV Watch
70 Disekt ForAllSecure Failed POV POV Watch
70 Disekt Shellphish Failed POV POV Watch
70 Disekt TECHx Failed POV POV Watch
71 CSDS CodeJitsu Failed POV through defenses POV Watch
71 CSDS DeepRed Failed POV POV Watch
71 CSDS Disekt Failed POV through defenses POV Watch
71 CSDS ForAllSecure Failed POV POV Watch
71 CSDS Shellphish Failed POV POV Watch
71 CSDS TECHx Failed POV POV Watch
71 DeepRed CodeJitsu Failed POV through defenses POV Watch
71 DeepRed CSDS Failed POV POV Watch
71 DeepRed Disekt Failed POV through defenses POV Watch
71 DeepRed ForAllSecure Failed POV POV Watch
71 DeepRed Shellphish Failed POV POV Watch
71 DeepRed TECHx Failed POV POV Watch
71 Disekt CodeJitsu Failed POV through defenses POV Watch
71 Disekt CSDS Failed POV POV Watch
71 Disekt DeepRed Failed POV POV Watch
71 Disekt ForAllSecure Failed POV POV Watch
71 Disekt Shellphish Failed POV POV Watch
71 Disekt TECHx Failed POV POV Watch
72 CSDS CodeJitsu Failed POV through defenses POV Watch
72 CSDS DeepRed Failed POV POV Watch
72 CSDS Disekt Failed POV through defenses POV Watch
72 CSDS ForAllSecure Failed POV POV Watch
72 CSDS Shellphish Failed POV POV Watch
72 CSDS TECHx Failed POV POV Watch
72 DeepRed CodeJitsu Failed POV through defenses POV Watch
72 DeepRed CSDS Failed POV POV Watch
72 DeepRed Disekt Failed POV through defenses POV Watch
72 DeepRed ForAllSecure Failed POV POV Watch
72 DeepRed Shellphish Failed POV POV Watch
72 DeepRed TECHx Failed POV POV Watch
72 Disekt CodeJitsu Failed POV through defenses POV Watch
72 Disekt CSDS Failed POV POV Watch
72 Disekt DeepRed Failed POV POV Watch
72 Disekt ForAllSecure Failed POV POV Watch
72 Disekt Shellphish Failed POV POV Watch
72 Disekt TECHx Failed POV POV Watch

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