ifupdown: dhcp behaviour does not comply with RFC 3442

Bug #616809 reported by R.A. van Ochten
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
isc-dhcp (Debian)
Fix Released
Unknown
isc-dhcp (Ubuntu)
Fix Released
Medium
Stéphane Graber

Bug Description

Binary package hint: ifupdown

Situation: the client is configured *not* to use network-manager, but instead eth0 is added to the "auto" line in /etc/network/interfaces. The dhcp-server has configured several options including:
* option 3 (Router)
* option 121 (Classless Static Routes)

According to RFC 3442, clients that receive and support option 121 MUST ignore option 3 if present.

Problem: the routes from *both* option 121 and option 3 are added to the kernel routing table, the client ends up with 2 default gateways.

Additional info:
* Tested with dhcp server on Windows 2008 R2
* Windows clients are found to contain the same bug.
* Debian GNU/Linux 5.0.5 (Lenny) is found to contain the same bug. This bug is probably present in multiple versions of Debian and derived distributions.
* When using network-manager, option 3 is used and option 121 is not (correct behaviour according to RFC 3442)
* Using dhcpcd instead of dhclient (dhcp3-client), option 121 is used and option 3 is ignored, like it should.

-- System information:
Ubuntu 10.04.1 LTS
Kernel: Linux 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010 i686 GNU/Linux

Tags: udd-find

Related branches

CVE References

Revision history for this message
R.A. van Ochten (ra-v-ochten) wrote :

Under "Additional info" I mentioned the behaviour of network-manager. I tried to reproduce, but now "Classless Static Routes" (option 121) is in effect and "Router" (option 3) is not.

The behaviour with ifup/ifdown and dhclient however didn't change.

tags: added: udd-find
Changed in ifupdown (Debian):
status: Unknown → New
affects: ifupdown (Ubuntu) → isc-dhcp (Ubuntu)
affects: ifupdown (Debian) → isc-dhcp (Debian)
Changed in isc-dhcp (Debian):
status: New → Fix Committed
Revision history for this message
Stéphane Graber (stgraber) wrote :

Will wait for this to be fixed in Debian, then merge the upload.

Changed in isc-dhcp (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
Changed in isc-dhcp (Debian):
status: Fix Committed → Fix Released
Changed in isc-dhcp (Ubuntu):
status: Triaged → Fix Committed
assignee: nobody → Stéphane Graber (stgraber)
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (7.6 KiB)

This bug was fixed in the package isc-dhcp - 4.2.4-1ubuntu1

---------------
isc-dhcp (4.2.4-1ubuntu1) quantal; urgency=low

  * Merge from Debian. Remaining changes:
    (LP: #768171, LP: #841182, LP: #881558, LP: #872929, LP: #616809)
    - Use upstart jobs for isc-dhcp-server and isc-dhcp-relay.
    - Add IPv6 support to udeb dhclient-script (forwarded as Debian #635897).
    - Add an apport hook to isc-dhcp-client and isc-dhcp-server.
    - Add an apparmor profile to isc-dhcp-client and isc-dhcp-server.
    - Update default dhclient.conf to ask for IPv6 configuration.
    - Patches:
      + dhclient-fix-backoff
      + dhclient-more-debug
      + dhclient-onetry-call-clientscript
      + dhclient-safer-timeout
      + dhcpd.conf-subnet-examples
      + multi-ip-addr-per-if
      + onetry_retry_after_initial_success
      + revert-next-server
  * Set fqdn.fqdn to the result of gethostname(); (LP: #991360)
  * Replace old droppriv and deroot patches by use of --enable-paranoia
    and matching -user and -group parameters to dhcpd. (LP: #727837)
  * Allow read access to /etc/dhcp/ddns-keys/* for ddns. (LP: #341817)
    It's expected that people generate one key per zone and have it stored
    in both /etc/bind9 and /etc/dhcp/ddns-keys/ for security reason.
  * Fix apport hook to work with python3.

isc-dhcp (4.2.4-1) unstable; urgency=low

  * New upstream release
  * debian/control: reformatted Uploaders so that dch doesn't think I'm making
    NMUs
  * debian/rules: do a clean between the LDAP-enabled build and the
    non-LDAP-enabled one, so that no LDAP-related artefacts are accidently
    incorporated into the non-LDAP build
  * debian/dhclient-script.*: conditionalise the chown/chmod of the new
    resolv.conf on the existence of the old one (closes: #595400)
  * debian/dhclient-script.linux: comply with RFC 3442 and ignore
    the routers option if the rfc3442-classless-static-routes option is present
    (closes: #592735)
  * debian/dhclient-script.kfreebsd: fix subnet mask handling (closes: #677985)

isc-dhcp (4.2.2.dfsg.1-5) unstable; urgency=medium

  [ Andrew Pollock ]
  * debian/dhclient.conf: send the hostname (closes: #151820)

  [ Michael Gilbert ]
  * Fix cve-2011-4868: error in DDNS handling with IPv6 (closes: #655746)
  * Fix cve-2011-4539: error in regular expression handling
    (closes: #652259)
  * Make dependencies diff-able
  * Add myself to uploaders
  * Remove all automatically generated files in clean rule
  * Medium urgency for security updates

isc-dhcp (4.2.2.dfsg.1-4) unstable; urgency=low

  * The "Zoe woke up at 4am and I couldn't get back to sleep so I had some
    extra time to work on this" release
  * patch the Makefile for the embedded BIND libraries so that autoconf is run
    so that the modification to configure.in to fix the FTBFS on kFreeBSD
    actually does something useful (closes: #643569)

isc-dhcp (4.2.2.dfsg.1-3) unstable; urgency=low

  * debian/control: remove transitional packages
  * debian/rules: apply the intent of Pierre Chifflier's patch to enable
    hardening options (closes: #644413)
  * debian/control: also add inetutils-ping to the dependencies for
    isc-dhcp-client on hurd (...

Read more...

Changed in isc-dhcp (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.