join
donate

NTP Bug 3381

NTP-01-006 NTP: Copious amounts of Unused Code (Info)

  • Date Resolved: 21 Mar 2017
  • References: Sec 3381
  • Summary: The report says: Statically included external projects potentially introduce several problems and the issue of having extensive amounts of code that is “dead” in the resulting binary must clearly be pointed out. The unnecessary unused code may or may not contain bugs and, quite possibly, might be leveraged for code-gadget-based branch-flow redirection exploits. Analogically, having source trees statically included as well means a failure in taking advantage of the free feature for periodical updates. This solution is offered by the system’s Package Manager. The three libraries identified are libisc, libevent, and libopts.
  • Resolution:
    • For libisc, we already only use a portion of the original library. We've found and fixed bugs in the original implementation (and offered the patches to ISC), and plan to see what has changed since we last upgraded the code. libisc is generally not installed, and when it it we usually only see the static libisc.a file installed. Until we know for sure that the bugs we've found and fixed are fixed upstream, we're better off with the copy we are using.
    • Version 1 of libevent was the only production version available until recently, and we've been requiring version 2 for a long time. But if the build system has at least version 2 of libevent installed, we'll use the version that is installed on the system. Otherwise, we provide a copy of libevent that we know works.
    • libopts is provided by GNU AutoGen, and that library and package undergoes frequent API version updates. The version of autogen used to generate the tables for the code must match the API version in libopts. AutoGen can be ... difficult to build and install, and very few developers really need it. So we have it on our build and development machines, and we provide the specific version of the libopts code in the distribution to make sure that the proper API version of libopts is available.
    • As for the point about there being code in these libraries that NTP doesn't use, OK. But other packages used these libraries as well, and it is reasonable to assume that other people are paying attention to security and code quality issues for the overall libraries. It takes significant resources to analyze and customize these libraries to only include what we need, and to date we believe the cost of this effort does not justify the benefit.
  • Credit: This issue was discovered by Cure53.


This topic: Main > SecurityNotice > NtpBug3381
Topic revision: r1 - 2017-03-22 - 01:36:26 - HarlanStenn
 
SSL security by CAcert
Get the CAcert Root Certificate
This site is powered by the TWiki collaboration platform
IPv6 Ready
Copyright &© 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors. Ideas, requests, problems regarding the site? Send feedback