Challenge Information - KPRCA_00087

Commonly known as: XStore


Rounds Enabled

25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39

Details

Original Versions

Known Vulnerabilities

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

Deployed patches

Deployed IDS rules

DARPA performer group

Kaprica Security (KPRCA)

Description

XStore is a data storage system using XPACK as a serialization/deserialization layer. XPACK is a binary data serialization spec that supports the encoding of many commonly used types, such as boolean, integer, string, raw bytes, array, and map. XStore provides APIs to store, lookup, and delete the entry to/from the storage. In order to make it easier to debug, it also supports to turn on and off the debug mode, when provided the correct debug key, to allow the admin to print the items currently in the system.

Feature List

``` - Store - IN: map(string => , string => , ...) - OUT: array(string, ...) - Store key-value pairs and return an array of keys that are added to the system.

  • Lookup
  • IN: array(string, string, ...)
  • OUT: map(string => , string => , ...)
  • Retrieve the values associated with the given keys. The value is None, if not found.

  • Delete

  • IN: array(string, string, ...)
  • OUT: map(string => , string => , ...)
  • Similar input/output behavior as lookup, but delete the pairs that are found.

  • (Debug)

  • IN: array(bool, debug_key)
  • OUT: bool
  • Turns on or off the debug mode.

  • (Print - Only activated when debug mode is on)

  • IN: UINT64 (number of elements to print, 0 means everything)
  • OUT: N/A
  • Prints out elements in the system. ```

Vulnerability

Vuln 1

In print_bytes function in service.c, the BYTES-type data are escaped for the bytes that are not alpha-numeric. In doing so, 1 raw byte becomes 3 bytes (\XX), resulting a possible stack buffer overflow of escaped buffer.

Generic class of vulnerability

Stack-based Buffer Overflow

CWE classification

CWE-121: Stack-based Buffer Overflow

Challenges

  • Interesting/uncommon data structure (treap)
  • Lots of recursion (for both serialization and underlying treap data structure)
  • Vulnerability not immediately triggerable (Must go through DEBUG => PRINT)

Difficulty

  • Discovery: easy
  • Proving: hard
  • Patching: easy

POV Information

Round Source Destination Result POV Analysis Video
26 CSDS CodeJitsu Failed POV POV Watch
26 CSDS DeepRed Failed POV POV Watch
26 CSDS Disekt Failed POV POV Watch
26 CSDS ForAllSecure Failed POV POV Watch
26 CSDS Shellphish Failed POV POV Watch
26 CSDS TECHx Failed POV POV Watch
26 DeepRed CodeJitsu Failed POV POV Watch
26 DeepRed CSDS Failed POV POV Watch
26 DeepRed Disekt Failed POV POV Watch
26 DeepRed ForAllSecure Failed POV POV Watch
26 DeepRed Shellphish Failed POV POV Watch
26 DeepRed TECHx Failed POV POV Watch
26 ForAllSecure CodeJitsu Failed POV POV Watch
26 ForAllSecure CSDS Failed POV POV Watch
26 ForAllSecure DeepRed Failed POV POV Watch
26 ForAllSecure Disekt Failed POV POV Watch
26 ForAllSecure Shellphish Failed POV POV Watch
26 ForAllSecure TECHx Failed POV POV Watch
27 CodeJitsu TECHx Failed POV through defenses POV Watch
27 CSDS CodeJitsu Failed POV through defenses POV Watch
27 CSDS DeepRed Failed POV POV Watch
27 CSDS Disekt Failed POV POV Watch
27 CSDS ForAllSecure Failed POV POV Watch
27 CSDS Shellphish Failed POV POV Watch
27 CSDS TECHx Failed POV through defenses POV Watch
27 DeepRed CodeJitsu Failed POV through defenses POV Watch
27 DeepRed CSDS Failed POV POV Watch
27 DeepRed Disekt Failed POV POV Watch
27 DeepRed ForAllSecure Failed POV POV Watch
27 DeepRed Shellphish Failed POV POV Watch
27 DeepRed TECHx Failed POV through defenses POV Watch
27 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
27 ForAllSecure CSDS Failed POV POV Watch
27 ForAllSecure DeepRed Failed POV POV Watch
27 ForAllSecure Disekt Failed POV POV Watch
27 ForAllSecure Shellphish Failed POV POV Watch
27 ForAllSecure TECHx Failed POV through defenses POV Watch
28 CodeJitsu Shellphish Failed POV through defenses POV Watch
28 CSDS CodeJitsu Failed POV through defenses POV Watch
28 CSDS DeepRed Failed POV POV Watch
28 CSDS Disekt Failed POV POV Watch
28 CSDS ForAllSecure Failed POV POV Watch
28 CSDS Shellphish Failed POV through defenses POV Watch
28 CSDS TECHx Failed POV through defenses POV Watch
28 DeepRed CodeJitsu Failed POV through defenses POV Watch
28 DeepRed CSDS Failed POV POV Watch
28 DeepRed Disekt Failed POV POV Watch
28 DeepRed ForAllSecure Failed POV POV Watch
28 DeepRed Shellphish Failed POV through defenses POV Watch
28 DeepRed TECHx Failed POV through defenses POV Watch
28 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
28 ForAllSecure CSDS Failed POV POV Watch
28 ForAllSecure DeepRed Failed POV POV Watch
28 ForAllSecure Disekt Failed POV POV Watch
28 ForAllSecure Shellphish Failed POV through defenses POV Watch
28 ForAllSecure TECHx Failed POV through defenses POV Watch
29 CSDS CodeJitsu Failed POV through defenses POV Watch
29 CSDS Disekt Failed POV POV Watch
29 CSDS ForAllSecure Failed POV POV Watch
29 CSDS Shellphish Failed POV through defenses POV Watch
29 CSDS TECHx Failed POV through defenses POV Watch
29 DeepRed CodeJitsu Failed POV through defenses POV Watch
29 DeepRed CSDS Failed POV POV Watch
29 DeepRed Disekt Failed POV POV Watch
29 DeepRed ForAllSecure Failed POV POV Watch
29 DeepRed Shellphish Failed POV through defenses POV Watch
29 DeepRed TECHx Failed POV through defenses POV Watch
29 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
29 ForAllSecure CSDS Failed POV POV Watch
29 ForAllSecure Disekt Failed POV POV Watch
29 ForAllSecure Shellphish Failed POV through defenses POV Watch
29 ForAllSecure TECHx Failed POV through defenses POV Watch
30 CSDS CodeJitsu Failed POV through defenses POV Watch
30 CSDS DeepRed Failed POV through defenses POV Watch
30 CSDS Disekt Failed POV POV Watch
30 CSDS ForAllSecure Failed POV POV Watch
30 CSDS Shellphish Failed POV through defenses POV Watch
30 CSDS TECHx Failed POV through defenses POV Watch
30 DeepRed CodeJitsu Failed POV through defenses POV Watch
30 DeepRed CSDS Failed POV POV Watch
30 DeepRed Disekt Failed POV POV Watch
30 DeepRed ForAllSecure Failed POV POV Watch
30 DeepRed Shellphish Failed POV through defenses POV Watch
30 DeepRed TECHx Failed POV through defenses POV Watch
30 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
30 ForAllSecure CSDS Failed POV POV Watch
30 ForAllSecure DeepRed Failed POV through defenses POV Watch
30 ForAllSecure Disekt Failed POV POV Watch
30 ForAllSecure Shellphish Failed POV through defenses POV Watch
30 ForAllSecure TECHx Failed POV through defenses POV Watch
31 CodeJitsu Shellphish Failed POV POV Watch
31 CSDS CodeJitsu Failed POV through defenses POV Watch
31 CSDS DeepRed Failed POV through defenses POV Watch
31 CSDS Disekt Failed POV POV Watch
31 CSDS ForAllSecure Failed POV POV Watch
31 CSDS Shellphish Failed POV POV Watch
31 CSDS TECHx Failed POV through defenses POV Watch
31 DeepRed CodeJitsu Failed POV through defenses POV Watch
31 DeepRed CSDS Failed POV POV Watch
31 DeepRed Disekt Failed POV POV Watch
31 DeepRed ForAllSecure Failed POV POV Watch
31 DeepRed Shellphish Failed POV POV Watch
31 DeepRed TECHx Failed POV through defenses POV Watch
31 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
31 ForAllSecure CSDS Failed POV POV Watch
31 ForAllSecure DeepRed Failed POV through defenses POV Watch
31 ForAllSecure Disekt Failed POV POV Watch
31 ForAllSecure Shellphish Failed POV POV Watch
31 ForAllSecure TECHx Failed POV through defenses POV Watch
32 CodeJitsu CSDS Failed POV through defenses POV Watch
32 CSDS CodeJitsu Failed POV through defenses POV Watch
32 CSDS Disekt Failed POV POV Watch
32 CSDS ForAllSecure Failed POV POV Watch
32 CSDS Shellphish Failed POV POV Watch
32 CSDS TECHx Failed POV through defenses POV Watch
32 DeepRed CodeJitsu Failed POV through defenses POV Watch
32 DeepRed CSDS Failed POV through defenses POV Watch
32 DeepRed Disekt Failed POV POV Watch
32 DeepRed ForAllSecure Failed POV POV Watch
32 DeepRed Shellphish Failed POV POV Watch
32 DeepRed TECHx Failed POV through defenses POV Watch
32 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
32 ForAllSecure CSDS Failed POV through defenses POV Watch
32 ForAllSecure Disekt Failed POV POV Watch
32 ForAllSecure Shellphish Failed POV POV Watch
32 ForAllSecure TECHx Failed POV through defenses POV Watch
33 CSDS CodeJitsu Failed POV through defenses POV Watch
33 CSDS DeepRed Failed POV through defenses POV Watch
33 CSDS Disekt Failed POV POV Watch
33 CSDS ForAllSecure Failed POV POV Watch
33 CSDS Shellphish Failed POV POV Watch
33 CSDS TECHx Failed POV through defenses POV Watch
33 DeepRed CodeJitsu Failed POV through defenses POV Watch
33 DeepRed CSDS Failed POV through defenses POV Watch
33 DeepRed Disekt Failed POV POV Watch
33 DeepRed ForAllSecure Failed POV POV Watch
33 DeepRed Shellphish Failed POV POV Watch
33 DeepRed TECHx Failed POV through defenses POV Watch
33 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
33 ForAllSecure CSDS Failed POV through defenses POV Watch
33 ForAllSecure DeepRed Failed POV through defenses POV Watch
33 ForAllSecure Disekt Failed POV POV Watch
33 ForAllSecure Shellphish Failed POV POV Watch
33 ForAllSecure TECHx Failed POV through defenses POV Watch
34 CSDS CodeJitsu Failed POV through defenses POV Watch
34 CSDS DeepRed Failed POV through defenses POV Watch
34 CSDS Disekt Failed POV POV Watch
34 CSDS ForAllSecure Failed POV POV Watch
34 CSDS Shellphish Failed POV POV Watch
34 CSDS TECHx Failed POV through defenses POV Watch
34 DeepRed CodeJitsu Failed POV through defenses POV Watch
34 DeepRed CSDS Failed POV through defenses POV Watch
34 DeepRed Disekt Failed POV POV Watch
34 DeepRed ForAllSecure Failed POV POV Watch
34 DeepRed Shellphish Failed POV POV Watch
34 DeepRed TECHx Failed POV through defenses POV Watch
34 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
34 ForAllSecure CSDS Failed POV through defenses POV Watch
34 ForAllSecure DeepRed Failed POV through defenses POV Watch
34 ForAllSecure Disekt Failed POV POV Watch
34 ForAllSecure Shellphish Failed POV POV Watch
34 ForAllSecure TECHx Failed POV through defenses POV Watch
35 CSDS CodeJitsu Failed POV through defenses POV Watch
35 CSDS DeepRed Failed POV through defenses POV Watch
35 CSDS Disekt Failed POV POV Watch
35 CSDS ForAllSecure Failed POV POV Watch
35 CSDS Shellphish Failed POV POV Watch
35 CSDS TECHx Failed POV through defenses POV Watch
35 DeepRed CodeJitsu Failed POV through defenses POV Watch
35 DeepRed CSDS Failed POV through defenses POV Watch
35 DeepRed Disekt Failed POV POV Watch
35 DeepRed ForAllSecure Failed POV POV Watch
35 DeepRed Shellphish Failed POV POV Watch
35 DeepRed TECHx Failed POV through defenses POV Watch
35 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
35 ForAllSecure CSDS Failed POV through defenses POV Watch
35 ForAllSecure DeepRed Failed POV through defenses POV Watch
35 ForAllSecure Disekt Failed POV POV Watch
35 ForAllSecure Shellphish Failed POV POV Watch
35 ForAllSecure TECHx Failed POV through defenses POV Watch
36 CSDS CodeJitsu Failed POV through defenses POV Watch
36 CSDS DeepRed Failed POV through defenses POV Watch
36 CSDS Disekt Failed POV POV Watch
36 CSDS ForAllSecure Failed POV POV Watch
36 CSDS Shellphish Failed POV POV Watch
36 CSDS TECHx Failed POV through defenses POV Watch
36 DeepRed CodeJitsu Failed POV through defenses POV Watch
36 DeepRed CSDS Failed POV through defenses POV Watch
36 DeepRed Disekt Failed POV POV Watch
36 DeepRed ForAllSecure Failed POV POV Watch
36 DeepRed Shellphish Failed POV POV Watch
36 DeepRed TECHx Failed POV through defenses POV Watch
36 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
36 ForAllSecure CSDS Failed POV through defenses POV Watch
36 ForAllSecure DeepRed Failed POV through defenses POV Watch
36 ForAllSecure Disekt Failed POV POV Watch
36 ForAllSecure Shellphish Failed POV POV Watch
36 ForAllSecure TECHx Failed POV through defenses POV Watch
37 CSDS CodeJitsu Failed POV through defenses POV Watch
37 CSDS DeepRed Failed POV through defenses POV Watch
37 CSDS Disekt Failed POV POV Watch
37 CSDS ForAllSecure Failed POV POV Watch
37 CSDS Shellphish Failed POV POV Watch
37 CSDS TECHx Failed POV through defenses POV Watch
37 DeepRed CodeJitsu Failed POV through defenses POV Watch
37 DeepRed CSDS Failed POV through defenses POV Watch
37 DeepRed Disekt Failed POV POV Watch
37 DeepRed ForAllSecure Failed POV POV Watch
37 DeepRed Shellphish Failed POV POV Watch
37 DeepRed TECHx Failed POV through defenses POV Watch
37 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
37 ForAllSecure CSDS Failed POV through defenses POV Watch
37 ForAllSecure DeepRed Failed POV through defenses POV Watch
37 ForAllSecure Disekt Failed POV POV Watch
37 ForAllSecure Shellphish Failed POV POV Watch
37 ForAllSecure TECHx Failed POV through defenses POV Watch
38 CSDS CodeJitsu Failed POV through defenses POV Watch
38 CSDS DeepRed Failed POV through defenses POV Watch
38 CSDS Disekt Failed POV POV Watch
38 CSDS ForAllSecure Failed POV POV Watch
38 CSDS Shellphish Failed POV POV Watch
38 CSDS TECHx Failed POV through defenses POV Watch
38 DeepRed CodeJitsu Failed POV through defenses POV Watch
38 DeepRed CSDS Failed POV through defenses POV Watch
38 DeepRed Disekt Failed POV POV Watch
38 DeepRed ForAllSecure Failed POV POV Watch
38 DeepRed Shellphish Failed POV POV Watch
38 DeepRed TECHx Failed POV through defenses POV Watch
38 Disekt CodeJitsu Failed POV through defenses POV Watch
38 Disekt CSDS Failed POV through defenses POV Watch
38 Disekt DeepRed Failed POV through defenses POV Watch
38 Disekt ForAllSecure Failed POV POV Watch
38 Disekt Shellphish Failed POV POV Watch
38 Disekt TECHx Failed POV through defenses POV Watch
38 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
38 ForAllSecure CSDS Failed POV through defenses POV Watch
38 ForAllSecure DeepRed Failed POV through defenses POV Watch
38 ForAllSecure Disekt Failed POV POV Watch
38 ForAllSecure Shellphish Failed POV POV Watch
38 ForAllSecure TECHx Failed POV through defenses POV Watch
39 CSDS CodeJitsu Failed POV through defenses POV Watch
39 CSDS DeepRed Failed POV through defenses POV Watch
39 CSDS Disekt Failed POV POV Watch
39 CSDS ForAllSecure Failed POV POV Watch
39 CSDS Shellphish Failed POV POV Watch
39 CSDS TECHx Failed POV through defenses POV Watch
39 DeepRed CodeJitsu Failed POV through defenses POV Watch
39 DeepRed CSDS Failed POV through defenses POV Watch
39 DeepRed Disekt Failed POV POV Watch
39 DeepRed ForAllSecure Failed POV POV Watch
39 DeepRed Shellphish Failed POV POV Watch
39 DeepRed TECHx Failed POV through defenses POV Watch
39 Disekt CodeJitsu Failed POV through defenses POV Watch
39 Disekt CSDS Failed POV through defenses POV Watch
39 Disekt DeepRed Failed POV through defenses POV Watch
39 Disekt ForAllSecure Failed POV POV Watch
39 Disekt Shellphish Failed POV POV Watch
39 Disekt TECHx Failed POV through defenses POV Watch
39 ForAllSecure CodeJitsu Failed POV through defenses POV Watch
39 ForAllSecure CSDS Failed POV through defenses POV Watch
39 ForAllSecure DeepRed Failed POV through defenses POV Watch
39 ForAllSecure Disekt Failed POV POV Watch
39 ForAllSecure Shellphish Failed POV POV Watch
39 ForAllSecure TECHx Failed POV through defenses POV Watch

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