Your message dated Fri, 09 Dec 2016 10:34:19 +0000
with message-id <[email protected]>
and subject line Bug#481010: fixed in ircd-ircu 2.10.12.10.dfsg1-2
has caused the Debian Bug report #481010,
regarding ircd-ircu: Incorrectly masks IPv6 addresses causing connection refusal
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
481010: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=481010
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: ircd-ircu
Version: 2.10.12.10.dfsg1-1
Severity: normal
Tags: patch

We had a switch outage in the office today, causing many people to be
disconnected from IRC.  When they attempted to reconnect, many clients
failed to connect, receiving the message:

 ERROR :Your host is trying to (re)connect too fast -- throttled

I tracked the problem down to line 123 of IPcheck.c where the code makes
an unwarranted assumption that IPv6 addresses should be masked to /64
and IPv4 addresses (after conversion to 6to4 format) should be masked to
/48.

Neither assumption is correct.  Our entire LAN is a /64, and this is not
unusual (at all), and indeed IPv6 address autoconfiguration is exactly
designed for multiple devices to coexist without collisions inside a
/64 subnet.

Furthermore, the assumption is not warranted for IPv4 addresses which
are canonicalised into 6to4 IPv6 addresses and then masked to /48. It is
*expected* that people will configure private networks behind 6to4
gateways, frequently using a /64 network with address autoconfiguration,
resulting in the same kind of issue with masking, and the daemon makes
no attempt to distinguish between an IPv4 address which *it* has
canonicalised, and one which is within the 6to4 address of a realio,
trulio, IPv6 gateway.

The attached patch fixes the problem by setting the mask to /128 when
performing this test at connection time.  It is possible that this
assumption occurs in other places as well, but this is the one causing
us pain right now :-)

Regards,
                                        Andrew McMillan.


-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.25.1-hippy (SMP w/2 CPU cores)
Locale: LANG=en_NZ.UTF8, LC_CTYPE=POSIX (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash

Versions of packages ircd-ircu depends on:
ii  libc6                         2.7-10     GNU C Library: Shared libraries

ircd-ircu recommends no packages.

-- no debconf information
diff --git a/ircd/IPcheck.c b/ircd/IPcheck.c
index c3cb586..c05d104 100644
--- a/ircd/IPcheck.c
+++ b/ircd/IPcheck.c
@@ -108,8 +108,8 @@ static unsigned int ip_registry_hash(const struct irc_in_addr *ip)
 }
 
 /** Find an IP registry entry if one exists for the IP address.
- * If \a ip looks like an IPv6 address, only consider the first 64 bits
- * of the address. Otherwise, only consider the final 32 bits.
+ * We consider the full 128 bits of any address since there might
+ * potentially be many people on a LAN behind a 6to4 gateway.
  * @param[in] ip IP address to search for.
  * @return Matching registry entry, or NULL if none exists.
  */
@@ -120,8 +120,7 @@ static struct IPRegistryEntry* ip_registry_find(const struct irc_in_addr *ip)
   ip_registry_canonicalize(&canon, ip);
   entry = hashTable[ip_registry_hash(&canon)];
   for ( ; entry; entry = entry->next) {
-    int bits = (canon.in6_16[0] == htons(0x2002)) ? 48 : 64;
-    if (ipmask_check(&canon, &entry->addr, bits))
+    if (ipmask_check(&canon, &entry->addr, 128))
       break;
   }
   return entry;

--- End Message ---
--- Begin Message ---
Source: ircd-ircu
Source-Version: 2.10.12.10.dfsg1-2

We believe that the bug you reported is fixed in the latest version of
ircd-ircu, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Martin Gerhard Loschwitz <[email protected]> (supplier of updated ircd-ircu 
package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Thu, 01 Dec 2016 09:26:50 +0000
Source: ircd-ircu
Binary: ircd-ircu
Architecture: source
Version: 2.10.12.10.dfsg1-2
Distribution: unstable
Urgency: medium
Maintainer: Martin Gerhard Loschwitz <[email protected]>
Changed-By: Martin Gerhard Loschwitz <[email protected]>
Description:
 ircd-ircu  - Undernet IRC Server daemon
Closes: 481010 669906 846431
Changes:
 ircd-ircu (2.10.12.10.dfsg1-2) unstable; urgency=medium
 .
   * Acknowledging the previous NMU -- thanks!
   * debian/{rules,control,compat}: Reworked the package to use Debhelper 9
   * debian/source/format: Switched to 3.0 Quilt format (Closes: #669906)
   * debian/copyright: Added machine-readable copyright file
   * debian/patches/03_fix_ipv6.patch: Patch by Andrew McMillan to fix the
     incorrect masking of IPv6 addresses (Closes: #481010)
   * debian/control: Build-Depend on libfl-dev for upcoming changes to
     the flex packaging (Closes: #846431)
   * debian/docs: Do no longer install pre-historic changelogs that are
     not relevant anymore
Checksums-Sha1:
 dcc351b5fe438b394ab7ba9639125e44f655010d 1810 ircd-ircu_2.10.12.10.dfsg1-2.dsc
 f7ef60127e3967f2487d56be05611b366acb127d 13412 
ircd-ircu_2.10.12.10.dfsg1-2.debian.tar.xz
Checksums-Sha256:
 8561822979f5aae61870401d7068f9ed310f03f2775294e3ab49a3c7ee14af1c 1810 
ircd-ircu_2.10.12.10.dfsg1-2.dsc
 64c5457625dc650ffc5cb405ca2b720b4748eb031235fcdb029fef676bc175a1 13412 
ircd-ircu_2.10.12.10.dfsg1-2.debian.tar.xz
Files:
 9364a4729fb1ec32d5dc4e07df800c49 1810 net optional 
ircd-ircu_2.10.12.10.dfsg1-2.dsc
 51b46e2b374ff9f9544e6d558538c012 13412 net optional 
ircd-ircu_2.10.12.10.dfsg1-2.debian.tar.xz

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEExXWpV+gZuhi/B+dmobCbQjM5YegFAlhKhG0ACgkQobCbQjM5
Yeg5pRAA0R1lPRgR5zAd1DpihRw0zMrvQWkP5WV7QTdJVDy+i9lf+YnFiPrQ/aLl
WfdEVw9Sgq84b7PhNmTblr1OdYI6Iql+ZGy0BOPfr7cmr/3qlo63a+W+i39HLrL+
qM3LYdRNVzJ6TUZsXtc1oys5VbsZdVIWJwsDZA1AmYoZ3KLh6lNIwsadiqplssBK
h2XKOVNMpvRbGqujpAFBJAn9k1foy5xvmgCXDnYCp0F4Iz3XV1loYNIrZYInd0Sk
bm/SPAq0GB9Engzb93wVxSUJCulTQe/t7iyXFzb+r9D8odnrQhPaWlo29pb5K6iU
oM9F+dr/Tk4V+3KwHQp4SvPfAQz7tz9WwaGIrQZ5dhMjDaUVH3985RV96Jc84trw
BlyVJpuVBR0C6pYup35q0ROEby3e8TodmALwGCOJcWDB6XYbvVUX0OPFdU1k2n9u
H4by7ahEOrvQZ5bd6X6LMskR40F+eW505bd+UiZTB+D6YXMATaEnYrjSdjXvI3kZ
j6pNQRhc6vc0yyX/mK5QBigXY5ODfp8kVsaq6n08iSIZAwJLnq+UbimCNm5At2CT
j5sxPJntUG3lUipsdDLeoT+14lXyOUzgBnuK7hUk4/mBYHJd+Cg5yak+yKkJZ/re
vF1gqLTHbWMBFIOHzbi0cBcTR+6KJKoI1dkxElRTIEW5SSQythA=
=UWnl
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to