tcpdump.patch 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. tcpdump patch patrix; thl@dev.de.cw.com
  2. tcpdump 371 371 372 381
  3. OpenPKG 120 121 130 20020822
  4. --- --- --- ---
  5. CAN-2002-0380 nfs y n n n see past OpenPKG-SA-2003.014-tcpdump
  6. CAN-2002-1350 bgp y n n n see past OpenPKG-SA-2003.014-tcpdump
  7. CAN-2003-0108 isakmp y n n n see past OpenPKG-SA-2003.014-tcpdump
  8. depth y y y n (*)
  9. CAN-2003-0989 isakmp y y y n updates CAN-2003-0108-isakmp
  10. CAN-2003-1029 l2tp y y n n
  11. CAN-2004-0055 radius y y y y
  12. CAN-2004-0057 isakmp y y y y
  13. (*) the vendor code fix for CAN-2003-0108 had two other unrelated code
  14. changes piggybacked. We removed the cosmetics (constify) and
  15. extracted an enhancement (depth).
  16. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0055 (radius)
  17. The print_attr_string function in print-radius.c for tcpdump 3.8.1
  18. and earlier allows remote attackers to cause a denial of service
  19. (segmentation fault) via a RADIUS attribute with a large length
  20. value.
  21. Index: print-radius.c
  22. ===================================================================
  23. RCS file: /tcpdump/master/tcpdump/print-radius.c,v
  24. retrieving revision 1.23
  25. retrieving revision 1.24
  26. diff -u -d -u -d -r1.23 -r1.24
  27. --- print-radius.c.CAN-2004-0055 15 Dec 2003 13:52:15 -0000 1.23
  28. +++ print-radius.c 7 Jan 2004 08:00:52 -0000 1.24
  29. @@ -476,7 +476,7 @@
  30. break;
  31. }
  32. - for (i=0; i < length ; i++, data++)
  33. + for (i=0; *data && i < length ; i++, data++)
  34. printf("%c",(*data < 32 || *data > 128) ? '.' : *data );
  35. return;
  36. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0057 (isakmp)
  37. The rawprint function in the ISAKMP decoding routines
  38. (print-isakmp.c) for tcpdump 3.8.1 and earlier allows remote
  39. attackers to cause a denial of service (segmentation fault) via
  40. malformed ISAKMP packets that cause invalid "len" or "loc" values to
  41. be used in a loop, a different vulnerability than CAN-2003-0989.
  42. Index: print-isakmp.c
  43. ===================================================================
  44. RCS file: /tcpdump/master/tcpdump/print-isakmp.c,v
  45. retrieving revision 1.41
  46. retrieving revision 1.42
  47. diff -u -d -u -d -r1.41 -r1.42
  48. --- print-isakmp.c.CAN-2004-0057 20 Dec 2003 10:03:19 -0000 1.41
  49. +++ print-isakmp.c 7 Jan 2004 08:00:51 -0000 1.42
  50. @@ -327,9 +327,13 @@
  51. static u_char *p;
  52. size_t i;
  53. + TCHECK2(*loc, len);
  54. +
  55. p = (u_char *)loc;
  56. for (i = 0; i < len; i++)
  57. printf("%02x", p[i] & 0xff);
  58. +trunc:
  59. + return;
  60. }
  61. struct attrmap {
  62. @@ -1111,6 +1115,8 @@
  63. cp = (const u_char *)ext;
  64. while (np) {
  65. + TCHECK2(*ext, sizeof(e));
  66. +
  67. safememcpy(&e, ext, sizeof(e));
  68. if (ep < (u_char *)ext + ntohs(e.len)) {
  69. @@ -1136,6 +1142,8 @@
  70. ext = (struct isakmp_gen *)cp;
  71. }
  72. return cp;
  73. +trunc:
  74. + return NULL;
  75. }
  76. static char *