tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
(Possibly critical) bug in our IPv6 fragment handling?
Hi tech-net,
I just stumbled across a blog post (in German):
http://blog.fefe.de/?ts=b3c75fd8
<loose translation>
If you thought the times of IP-level exploits are over, you're wrong:
http://marc.info/?l=openbsd-cvs&m=129496184702233 [...]
</loose translation>
The OpenBSD people applied the following patch:
--- src/sys/netinet6/frag6.c 2010/05/07 14:33:17 1.30
+++ src/sys/netinet6/frag6.c 2011/01/13 23:36:53 1.31
@@ -1,4 +1,4 @@
-/* $OpenBSD: frag6.c,v 1.30 2010/05/07 13:33:17 claudio Exp $ */
+/* $OpenBSD: frag6.c,v 1.31 2011/01/13 23:36:53 bluhm Exp $ */
/* $KAME: frag6.c,v 1.40 2002/05/27 21:40:31 itojun Exp $ */
/*
@@ -545,12 +545,11 @@ insert:
*q6->ip6q_nxtp = (u_char)(nxt & 0xff);
#endif
- /*
- * Delete frag6 header with as a few cost as possible.
- */
- if (offset < m->m_len) {
+ /* Delete frag6 header */
+ if (m->m_len >= offset + sizeof(struct ip6_frag)) {
+ /* This is the only possible case with !PULLDOWN_TEST */
ovbcopy((caddr_t)ip6, (caddr_t)ip6 + sizeof(struct ip6_frag),
- offset);
+ offset);
m->m_data += sizeof(struct ip6_frag);
m->m_len -= sizeof(struct ip6_frag);
} else {
As we have roughly the same code in src/sys/netinet6/frag6.c and I cannot say
anything about the assessment in that blog post, I thought I'd ask whether
this is something to look at.
Regards,
Home |
Main Index |
Thread Index |
Old Index