Out-of-bounds Read Affecting nanopb package, versions <1.30905.0

  • Attack Complexity


  • Scope


Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • snyk-id


  • published

    4 Feb 2020

  • disclosed

    3 Feb 2020

  • credit


How to fix?

Upgrade nanopb to version 1.30905.0 or higher.


nanopb is a plain-C implementation of Google's Protocol Buffers data format.

Affected versions of this package are vulnerable to Out-of-bounds Read. It might call free() on a pointer value that comes from uninitialized memory, with the following conditions:

  1. It is compiled with PB_ENABLE_MALLOC
  2. the message to be decoded contains a repeated string, bytes or message field
  3. realloc() runs out of memory when expanding the array

Depending on platform this can result in a crash or further memory corruption, which may be exploitable in some cases.