CVE-2017-1000158: PyString_DecodeEscape integer overflow

Check & prevent integer overflow in PyString_DecodeEscape.

You need to compile a 1 GiB Python file on 32-bit system for reproducing it. It is very unlikely that this can happen by accident, and it is hard to used it in security attack. If you can make the attacked program compiling a 1 GiB Python file, you perhaps have easier ways to make a harm.

  • Disclosure date: 2017-06-13 (Python issue bpo-30657 reported)

Fixed In

Python issue

[security] CVE-2017-1000158: Unsafe arithmetic in PyString_DecodeEscape.

  • Python issue: bpo-30657
  • Creation date: 2017-06-13
  • Reporter: Jay Bosamiya


CPython (aka Python) up to 2.7.13 is vulnerable to an integer overflow in the PyString_DecodeEscape function in stringobject.c, resulting in heap-based buffer overflow (and possible arbitrary code execution)


Timeline using the disclosure date 2017-06-13 as reference:

  • 2017-06-13: Python issue bpo-30657 reported by Jay Bosamiya
  • 2017-06-18 (+5 days): commit c3c9db8
  • 2017-09-17 (+96 days): Python 2.7.14 released
  • 2017-11-17 (+157 days): CVE-2017-1000158 published
  • 2017-12-08 (+178 days): commit 6c004b4
  • 2017-12-08 (+178 days): commit fd8614c
  • 2018-02-04 (+236 days): Python 3.4.8 released
  • 2018-02-04 (+236 days): Python 3.5.5 released