
This was my eighth month working on Debian LTS. I was assigned
14.75 hours of work
by
Freexian's
Debian LTS initiative.
linux-2.6
I didn't upload any new version of the kernel this month, but I did
send all the recent security fixes to Willy Tarreau who maintains
the 2.6.32.y branch at kernel.org. I also spent more time working on a
fix for
bug #770492 aka
CVE-2015-1350, which is not yet fixed upstream. I now have a
candidate patch for 2.6.32.y/squeeze, and automated tests covering
many of the affected filesystems.
Front desk
The LTS 'front desk' role is now assigned on a rota, and I was my
first turn in the third week of July. I investigated which new CVEs
affected LTS-supported packages in squeeze, recorded this in the
secure-testing repository, and mailed the package maintainers to
give them a chance to handle the updates.
groovy
Groovy had a single issue
(
CVE-2015-3253)
with a simple fix that I could apply to the version in squeeze.
Unfortunately the previous version in squeeze had not been properly
updated during the squeeze release cycle and could no longer be
built from source. I eventually worked out what the
build-dependencies should be, uploaded the fix and issued
DLA-274-1.
ruby1.9.1
Ruby 1.9.1 also had a single issue
(
CVE-2014-6438),
though the fixes were more complicated and hard to find. (The
original bug report for this is
still not public in the
upstream bug tracker.) I also had to find an earlier upstream
change that they depended on. As I've mentioned before, Ruby has an
extensive test suite so I could be quite confident in my backported
changes. I uploaded and
issued
DLA-275-1.
libidn
The GNU library for Internationalized Domain Names, libidn, required
applications to pass only valid UTF-8 strings as domain names.
The Jabber instant messaging server turned out not to be validating
untrusted domain names, leading to a security issue there
(
CVE-2015-2059).
As there are likely to be other applications with similar bugs, this
was resolved by adding UTF-8 validation to libidn.
The fix for this involved importing additional functions from the
GNU portability library, gnulib, and there my difficulties began.
Confusingly, libidn has two separate sets of functions imported from
gnulib, and due to interdependencies it turned out that I would have
to update both of these wholesale rather than just importing the new
functions that were wanted. This resulted in a 35,000 line patch.
Following that I needed to autoreconf the package (and debug that
process when it failed), ending up with another 26,000 line patch.
Finally, it turned out that the new gnulib code needed gperf to
build a header file for Solaris (when building for Linux? huh?). I
ended up adding that with another patch instead.
libidn has a decent test suite, so I could at least be confident
in the result of my changes. I uploaded and issued
DLA-277-1.
Dear upstream developers, please use sane libraries instead
of gnulib.